Slight rearangement of reading logic, and styling.
Move book reading completion inside player class.
Make some player methods private.
Conceal book details until the player has studied the book a bit.
Add a const method for retrieving inventory contents.
Const some stuff.
Add method that checks whether the player either knows the given recipe or has a nearby book providing it.
Allow player to craft recipe if they have a book providing it nearby.
Only allow books to be used for recipe reference if you've read through them first.
Oxford comma can go to hell.
Replace kind of sloppy knows_or_has_recipe() with has_recipe() that returns the learn difficulty, and just call both when needed.
Add chance to memorize recipe when crafting out of a book.
Random whitespace cleanup.
Attempt to make chance of learning recipe from practicing it scale better.
Better phrasing for low-morale message.
Turn books_read into the generic items_identified.
Ease up on information blockade.
Only color-code books if the player has perused them.
Halve the rate of learning recipes from books.
Fix wrong dereference of player pointer, thanks KA101.