public override void receiveLeftClick(int x, int y, bool playSound = true) { base.receiveLeftClick(x, y, playSound); if (Game1.activeClickableMenu == null) { return; } if (questPage == -1) { for (int i = 0; i < questLogButtons.Count; i++) { if (pages.Count > 0 && pages[currentPage].Count > i && questLogButtons[i].containsPoint(x, y)) { Game1.playSound("smallSelect"); questPage = i; _shownQuest = pages[currentPage][i]; _objectiveText = _shownQuest.GetObjectiveDescriptions(); _shownQuest.MarkAsViewed(); scrollAmount = 0f; SetScrollBarFromAmount(); if (Game1.options.SnappyMenus) { currentlySnappedComponent = getComponentWithID(102); currentlySnappedComponent.rightNeighborID = -7777; currentlySnappedComponent.downNeighborID = (HasMoneyReward() ? 103 : (_shownQuest.CanBeCancelled() ? 104 : (-1))); snapCursorToCurrentSnappedComponent(); } return; } } if (currentPage < pages.Count - 1 && forwardButton.containsPoint(x, y)) { nonQuestPageForwardButton(); return; } if (currentPage > 0 && backButton.containsPoint(x, y)) { nonQuestPageBackButton(); return; } Game1.playSound("bigDeSelect"); exitThisMenu(); return; } Quest quest = _shownQuest as Quest; if (questPage != -1 && _shownQuest.ShouldDisplayAsComplete() && _shownQuest.HasMoneyReward() && rewardBox.containsPoint(x, y)) { Game1.player.Money += _shownQuest.GetMoneyReward(); Game1.playSound("purchaseRepeat"); _shownQuest.OnMoneyRewardClaimed(); } else if (questPage != -1 && quest != null && !quest.completed && (bool)quest.canBeCancelled && cancelQuestButton.containsPoint(x, y)) { quest.accepted.Value = false; if (quest.dailyQuest.Value && quest.dayQuestAccepted.Value == Game1.Date.TotalDays) { Game1.player.acceptedDailyQuest.Set(newValue: false); } Game1.player.questLog.Remove(quest); pages[currentPage].RemoveAt(questPage); questPage = -1; Game1.playSound("trashcan"); if (Game1.options.SnappyMenus && currentPage == 0) { currentlySnappedComponent = getComponentWithID(0); snapCursorToCurrentSnappedComponent(); } } else if (!NeedsScroll() || backButton.containsPoint(x, y)) { exitQuestPage(); } if (NeedsScroll()) { if (downArrow.containsPoint(x, y) && scrollAmount < _contentHeight - _scissorRectHeight) { DownArrowPressed(); Game1.playSound("shwip"); } else if (upArrow.containsPoint(x, y) && scrollAmount > 0f) { UpArrowPressed(); Game1.playSound("shwip"); } else if (scrollBar.containsPoint(x, y)) { scrolling = true; } else if (scrollBarBounds.Contains(x, y)) { scrolling = true; } else if (!downArrow.containsPoint(x, y) && x > xPositionOnScreen + width && x < xPositionOnScreen + width + 128 && y > yPositionOnScreen && y < yPositionOnScreen + height) { scrolling = true; leftClickHeld(x, y); releaseLeftClick(x, y); } } }