#ifdef DEBUG
E boolean FDECL(showdebug, (const char *));
#endif
-E void FDECL(read_tribute, (const char *,const char *,int));
+E boolean FDECL(read_tribute, (const char *,const char *,int));
/* ### fountain.c ### */
/* ---------- BEGIN TRIBUTE ----------- */
-/* 3.6 tribute code */
+/* 3.6 tribute code
+ *
+ * Returns TRUE if you were able to read something.
+ *
+ */
#define SECTIONSCOPE 1
#define TITLESCOPE 2
#define PASSAGESCOPE 3
-void
+boolean
read_tribute(tribsection, tribtitle, tribpassage)
const char *tribsection, *tribtitle;
int tribpassage;
const char *badtranslation = "an incomprehensible foreign translation";
boolean matchedsection = FALSE, matchedtitle = FALSE;
winid tribwin = WIN_ERR;
+ boolean grasped = FALSE;
/* check for mandatories */
if (!tribsection || !tribtitle) {
pline("It's %s of \"%s\"!",
badtranslation, tribtitle);
- return;
+ return grasped;
}
debugpline3("read_tribute %s, %s, %d.", tribsection, tribtitle, tribpassage);
if (!fp) {
/* this is actually an error - cannot open tribute file! */
pline("You feel too overwhelmed to continue!");
- return;
+ return grasped;
}
/*
display_nhwindow(tribwin, FALSE);
destroy_nhwindow(tribwin);
tribwin = WIN_ERR;
- u.uconduct.literate++;
+ grasped = TRUE;
} else {
pline("It seems to be %s of \"%s\"!",
badtranslation, tribtitle);
}
- return;
+ return grasped;
}
/* ---------- END TRIBUTE ----------- */
SPELL("blank paper", "plain", P_NONE, 18, 0, 0, 0, 0, HI_PAPER),
/* tribute book for 3.6 */
OBJECT(OBJ("novel", "paperback"), BITS(0,0,1,0,0,0,0,1,0,0,0,P_NONE,HI_PAPER), 0,
- SPBOOK_CLASS, 0, 0, 0, 1, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
+ SPBOOK_CLASS, 0, 0, 0, 20, 0, 0, 0, 1, 20, CLR_BRIGHT_BLUE),
/* a special, one of a kind, spellbook */
OBJECT(OBJ("Book of the Dead", "papyrus"), BITS(0,0,1,0,1,0,1,1,0,0,0,P_NONE,PAPER), 0,
SPBOOK_CLASS, 0, 0,20, 10000, 0, 0, 0, 7, 20, HI_PAPER),
/* 3.6.0 tribute */
if (booktype == SPE_NOVEL) {
- /* Obtain current Terry Pratchett book
- title for the current game. */
+ /* Obtain current Terry Pratchett book title */
const char *tribtitle = noveltitle(&spellbook->novelidx);
- read_tribute("books", tribtitle, 0);
+ if (read_tribute("books", tribtitle, 0)) {
+ u.uconduct.literate++;
+ check_unpaid(spellbook);
+ }
return(1);
}