Skip to content

Add New Quest State for Mushroom Quest#8475

Open
NiteKat wants to merge 2 commits intodiasurgical:masterfrom
NiteKat:mushroomquestfix
Open

Add New Quest State for Mushroom Quest#8475
NiteKat wants to merge 2 commits intodiasurgical:masterfrom
NiteKat:mushroomquestfix

Conversation

@NiteKat
Copy link
Copy Markdown
Contributor

@NiteKat NiteKat commented Feb 19, 2026

Adds a new state to the Mushroom Quest named QS_ADRIATALKED to track if she spoke the quest text about the demon brain in the player's inventory, allowing the player to hear that quest text once and then access her talk menu instead of her infinitely complaining about the brain.

Closes #8446

Adds a new state to the Mushroom Quest named QS_ADRIATALKED to track if she spoke the quest text about the demon brain in the player's inventory, allowing the player to hear that quest text once and then access her talk menu instead of her infinitely complaining about the brain.
if (HasInventoryItemWithId(player, IDI_BRAIN)) {
if (HasInventoryItemWithId(player, IDI_BRAIN) && Quests[Q_MUSHROOM]._qvar1 != QS_ADRIATALKED) {
Quests[Q_MUSHROOM]._qmsg = TEXT_MUSH11;
Quests[Q_MUSHROOM]._qvar1 = QS_ADRIATALKED;
Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

_qvar1 gets stored in the save file so I think this enum should match the one in Devilution for the purposes of save compatibility. I feel like there must be another way.

https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/enums.h#L3154-L3163

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It looks like the original logic is using _qvar2 for this. Seems like we should be doing that, also for save compatibility.

https://github.com/diasurgical/devilution/blob/9f01757243412bb154d02d9af65c804159e6e0ea/Source/towners.cpp#L1064

Copy link
Copy Markdown
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Oh good catch, I missed that was qvar2 in the original and not qvar1. I also got distracted by how tMsgSaid was removed in DevilutionX but is present in Devilution, though I couldn't find that being used anywhere.

This could be swapped to qvar2 and should work the same I think, and instead of using a QS_, we'd just store TEXT_MUSH11 and check for that like Devilution does.

@yuripourre yuripourre added the fix fix for a bug label Feb 21, 2026
Reverts the new QS_ and swaps to using qvar2 and TEXT_MUSH11 to track if Adria has given the quest text regarding the brain to match what Deviltuion/1.09 does to keep save file compatibility.
@NiteKat
Copy link
Copy Markdown
Contributor Author

NiteKat commented Feb 24, 2026

I'm not sure why the clang-format check fails. It looks like the clang warnings I can see are unrelated to the changes I made?

@StephenCWills
Copy link
Copy Markdown
Member

Yeah, master is currently failing that check.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

fix fix for a bug

Projects

None yet

Development

Successfully merging this pull request may close these issues.

[Issue Report]: Issues with Adria's Quest Text for Black Mushroom Quest

3 participants