]> granicus.if.org Git - nethack/commitdiff
suggested booktribute mods
authornhmall <mjnh@persona.ca>
Sat, 18 Apr 2015 21:45:27 +0000 (17:45 -0400)
committernhmall <mjnh@persona.ca>
Sat, 18 Apr 2015 21:45:27 +0000 (17:45 -0400)
 Changes to be committed:
modified:   include/extern.h
modified:   src/files.c
modified:   src/objects.c
modified:   src/spell.c

- charge a little more.
- no free read in the bookstore.

include/extern.h
src/files.c
src/objects.c
src/spell.c

index 3a0535cf079c22b0aad7cc68e10d9ba90e31b620..9de55e169b5210c37fdb13c085bc3c4699723c9a 100644 (file)
@@ -753,7 +753,7 @@ E void NDECL(really_close);
 #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 ### */
 
index 8e942f757419b96c5b7f1d1d2b367e981df82c1e..37af6e9c139ea0edd80950cfcb0d25f846278d85 100644 (file)
@@ -3331,13 +3331,17 @@ const char *filename;
 
 /* ----------  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;
@@ -3351,12 +3355,13 @@ 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);
@@ -3365,7 +3370,7 @@ int  tribpassage;
     if (!fp) {
        /* this is actually an error - cannot open tribute file! */
        pline("You feel too overwhelmed to continue!");
-       return;
+       return grasped;
     }
 
     /*
@@ -3465,13 +3470,13 @@ cleanup:
                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 ----------- */
 
index d646495195701b1b37702c661513f6ebfcfb7118..b4c26041a380b38085df967e59fa46dfaa43aa30 100644 (file)
@@ -829,7 +829,7 @@ SPELL("freeze sphere",   "hardcover",   P_MATTER_SPELL, 20,  2, 1, 1, NODIR, CLR
 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),
index a9a9d7fb4d835439ba6ce2f423f7befd4d6f2066..fe0741d2fb851c75c10c701279f2b629549b5b6d 100644 (file)
@@ -452,10 +452,12 @@ register struct obj *spellbook;
 
                /* 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);
                }