Closed Spessmen14 closed 3 years ago
It seems that game::IsQuestItem() doesn't work as it should be. It should check against IsQuestItem flag in item.dat, but instead it has a limited set of quest items that it returns true for.
We should replace it with the flag check.
I'll leave that in your capable hands, then.
@red-kangaroo nice, looks much more reliable
I think game::IsQuestItem(SomeItem)
definition should be removed and wherever it is being used put:
SomeItem->IsQuestItem()
I dont know if I overlook SomeItem->IsQuestItem()
existance or if I made tests and preferred game::IsQuestItem(), but I think the former is most probable.
implemented and compiled at https://github.com/Attnam/ivan/pull/587 and https://github.com/Attnam/ivan/pull/595 but I wont be able to test it :/ the ideal would be to use only item->IsQuestItem() but I think the specific ones at game::IsQuestItem() should be tested too just to be sure (despite apparently unnecessary...), I made minimal changes because I couldnt test it.
Addresses #603
All of these need to be marked as protected from dismantling along with other such items like the encrypted scroll or the Avatar of Valpurus, since destroying these unique items renders their respective quests uncompletable.