Loot filter: quest items are their own category, first and never voided

Quest items are recognized by the type's quest number or the scripts'
QuestItem / MainQuestItem marks, checked before the other categories.
Their row in the Beute tab has no Löschen box; Void in the ini reads as
Default.

Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>
This commit is contained in:
khallaandClaude Opus 5.5 committed 2026-10-25 18:24:28 +01:00
1 parent c0eedbce7f
commit 401e20b1f2
5 files changed
+61 -28

No files matched your search

+12 -4
View File
@@ -13,12 +13,21 @@ Decided with the user: the filter replaces the game's PICKUPAUTO choice
(all / valuable / gold only; its radio buttons are hidden, the animation
checkbox stays); Void deletes loot only (monster drops, chests), not items
the player puts down. Settings: `[loot]` in `sacredK.ini`
(`Gold=Default`, keys Gold, Potions, White, Blue, Yellow, Brown, Green;
(`Gold=Default`, keys Quest, Gold, Potions, White, Blue, Yellow, Brown, Green;
values Void, Ignore, Default, AlwaysShow). Code: `src/mods/lootfilter.cpp`,
page in `src/mods/options.cpp`.
## What decides the category (read from the game)
- Quest items (request 2026-10-25: "Quest Items are currently potentially
being destroyed, it needs to be top priority, also Löschen is not an option
for those"), checked first: the type's quest number (type table +0x1c) or
the scripts' QuestItem / MainQuestItem marks (+0x61 / +0x62; the script
parser 0x4584a9 turns those words into tokens 0x61 / 0x62), as the quest
book reads them (0x43ad80). The game's always-collect test `0x428550`
requires type flag 0x1000000 besides, so quest items without it fell into
their colour's category and could be voided. Their row has no *Löschen*
box; a `Void` in the ini is read as Default.
- Gold: `0x43ae20` (thiscall on the item type table, (type)): one of four
types listed at `0x947920`. The labels show its amount, the collect mode
takes it without inventory space, the loot drop sets the amount after
@@ -31,9 +40,8 @@ page in `src/mods/options.cpp`.
`ffa0a0ff`, 12..14 yellow `fff0e040`, 15 brown `ffc19a33`; set green
`ff15ff25`. (Without UNIQUE_COLOR, items with special bits get other
colours from `0x5c1260`; the filter uses the tier regardless.)
- Not filtered: runes (class 0x1c), objects with flag 0x800 and the types
`0x428550` reports (CanCollectItem always takes both; quest items,
presumably).
- Not filtered: runes (class 0x1c) and objects with flag 0x800 (the game's
CanCollectItem always takes those).
## Where it acts