Fix quest status reading to use correct statuses

This commit is contained in:
CarlPoppa
2025-10-20 14:14:23 +01:00
parent 53e7495886
commit 5504aaf979
3 changed files with 28 additions and 44 deletions

View File

@@ -49,28 +49,6 @@ func (gd *GameReader) readQuestFlags(questBytes []byte, questIndex int) uint16 {
return uint16(questBytes[byteOffset]) | (uint16(questBytes[byteOffset+1]) << 8)
}
func (gd *GameReader) getQuestStatus(flags uint16) []quest.Status {
var statuses []quest.Status
if flags == 0 {
statuses = append(statuses, quest.StatusQuestNotStarted)
return statuses
}
// Return early if completed
if (flags & (1 << 0)) != 0 {
statuses = append(statuses, quest.StatusUpdateQuestLogCompleted)
return statuses
}
// If not completed, find the highest bit, ignoring unknown
for bit := 10; bit >= 1; bit-- {
if (flags & (1 << bit)) != 0 {
statuses = append(statuses, quest.Status(bit))
return statuses
}
}
statuses = append(statuses, quest.StatusUnknown2)
return statuses
func (gd *GameReader) getQuestStatus(flags uint16) quest.Status {
return quest.Status(flags)
}