Regarding a post on PEQTGC. (Sorry, can't get the link, the PEQ website is not responding for me right now.)
Supporting evidence:
Code:
+-------+----------------------------------------+------+----------+
| id | name | book | booktype |
+-------+----------------------------------------+------+----------+
| 18368 | Seitha's Research on Clerical Spells I | 1 | 0 |
| 18678 | Yaeth's Compendium Book V | 1 | 22 |
| 18780 | Tattered Note | 0 | -1 |
| 18786 | Tattered Note | 0 | -1 |
| 36003 | Frost-Covered Note | 0 | -1 |
+-------+----------------------------------------+------+----------+
The first was noted as working, but showing up as a scroll. The other four were noted as not working. 0 being the code for a scroll would be consistent with this.
Booktype seems to actually be a language field at a guess. (Some evidence)
Code:
+----------+-----------+
| booktype | count(id) |
+----------+-----------+
| -1 | 440 |
| 0 | 83831 |
| 1 | 3 |
| 2 | 12 |
| 3 | 5 |
| 4 | 17 |
| 5 | 6 |
| 6 | 8 |
| 7 | 6 |
| 8 | 25 |
| 9 | 9 |
| 10 | 17 |
| 11 | 3 |
| 12 | 8 |
| 13 | 14 |
| 14 | 7 |
| 15 | 9 |
| 16 | 22 |
| 17 | 8 |
| 18 | 54 |
| 19 | 2 |
| 20 | 1 |
| 21 | 8 |
| 22 | 65 |
| 23 | 8 |
+----------+-----------+
Tested locally with the 5 book items in the first table. All 5 displayed as they should. (2 books, 3 scrolls) Testing done with a SoD client.
Code:
Index: client.cpp
===================================================================
--- client.cpp (revision 1970)
+++ client.cpp (working copy)
@@ -1997,7 +1997,7 @@
if(GetClientVersion() >= EQClientSoF) {
const ItemInst *inst = m_inv[book->invslot];
if(inst) {
- out->type = inst->GetItem()->BookType;
+ out->type = inst->GetItem()->Book;
} else {
out->type = book->type;
}