Quest book as one list: story, then side quests by region with ??? rows

The game's list builder runs on a reordered copy of the book: the story, then
one section per region (id blocks of 100 grouped by the region their quests
lie in, named as the megamap names regions), unknown quests as "???", the
rest joined to the nearest area, undiscovered counts. Act tabs hidden, page
turning kept. "Erledigte anzeigen" row toggles completed quests
([questbook] ShowCompleted).

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 11:41:19 +01:00
1 parent 34cacefcfc
commit 1d16fc65c4
7 files changed
+675 -14

No files matched your search

+24
View File
@@ -380,3 +380,27 @@
0x00622c60 Sector_GetExploredMask # (out 128 bytes), ret 4
0x00622c80 Sector_SetExploredMask # (128 bytes), ret 4; from the save (0x606ae0)
0x00639030 Sector_BuildFogTexture # FOGOFWAR01.TGA from a mask, for the zoomed map view
# --- quest book (2026-10-25) -----------------------------------------------------
0x0046c450 QuestManager_AddBookEntry # thiscall (quest index, ?), ret 8; kind 3 for ids 1..99, chapter from the current main quest
0x00497830 QuestManager_BookEntryPosition # thiscall (entry index, out), ret 8; from entry +0x18 / +0x1c
0x0049dd40 QuestManager_SelectedBookEntry # thiscall; +0x3a0 + player * 8
0x0049dd70 QuestManager_MainBookEntry # thiscall; +0x39c + player * 8 (= +0x3a4 for player 1)
0x004975d0 QuestManager_MarkerColour # thiscall (entry, kind), ret 8; kind 0: side open blue ff006cff, main ffffff80, solved green, failed red
0x00497910 QuestManager_EntriesInSectors # thiscall (sectors, out, open only), ret 0xc; book entries whose marker lies in the sectors
0x0049a7a0 QuestManager_CompassPos # script QuestkompassPos: entry +0x10/+0x14 = cell, +0x20 radius ("rad:")
0x0049af70 QuestManager_CompassObject # script QuestkompassOBJ: +0x10 = 0xffffffff + object id, or 0xeeeeeeee + script NPC id
0x004a6740 QuestManager_ResolveCompass # thiscall (entry), ret 4; marker cell +0x18/+0x1c from the compass target
0x006b04c0 cUI_Book::BuildQuestList # thiscall; rows per tab (chapter +0x16c), pages via PageFull
0x006b1670 cUI_Book::Rebuild # by book mode +0x166: 0 quests 0x6b04c0, 1 0x6b0ae0, 2 0x6b0190
0x006b1a70 cUI_Book::PageFull # thiscall (tab, page), ret 8
0x006b1cd0 cUI_Book::DrawDetail # thiscall (renderer, record 0x40, sub-page), ret 0xc
0x006b27f0 cUI_Book::RenderPage # thiscall (renderer, bookmarks only), ret 8
0x006b3620 cUI_Book::HandleEvent # vf10, thiscall (event), ret 4
0x0043ad60 cItemTypeTable::IsQuestItem # (type), ret 4: type +0x61 (script word QuestItem)
0x0043ad80 cItemTypeTable::GetQuestInfo # (type, &questItem, &mainQuestItem, &quest, &quest+1), ret 0x14: type +0x1c/+0x61/+0x62
0x00622640 MapPosition_Set # thiscall (u16 sector, x, y, u8 layer), ret 0x10
0x00634970 World_SectorAt # thiscall (MapPosition*), ret 4: the sector object or null
0x00622e30 Sector_Region # thiscall: region number (sector +0x17c -> +0xd7)
0x00425370 Region_NameKey # cdecl (char region): name text key from the region name table 0xaa8ca8, or null
0x00425300 Region_GetInfo # cdecl (char region, out, out): table +0x38 / +0x30 of the region's record