--- src/files.c.orig Sun Aug 17 19:24:24 2003 +++ src/files.c Sun Aug 24 14:23:54 2003 @@ -897,6 +897,19 @@ } } + /* Function ABILITY */ + else if (streq(t, "ABILITY")) + { + s16b abil = -1; + v = "0"; + while (*s && (f != b2)) + { + t = process_pref_file_expr(&s, &f); + if (*t) abil = find_ability(t); + } + if (abil >= 0 && has_ability(abil)) v = "1"; + } + /* Oops */ else { @@ -913,6 +926,21 @@ if ((f = *s) != '\0') * s++ = '\0'; } + /* Double-quoted string */ + else if (*s == '"') + { + /* Accept all printables up to the closing quote */ + ++s; + while (isprint(*s) && *s != '"') ++s; + + /* Terminate and Extract final */ + if (*s == '"') * s++ = '\0'; + if ((f = *s) != '\0') * s++ = '\0'; + + /* Skip leading quote */ + v = b + 1; + } + /* Other */ else { @@ -964,6 +992,16 @@ else if (streq(b + 1, "PLAYER")) { v = player_base; + } + + /* God */ + else if (streq(b + 1, "GOD")) + { + int pgod = p_ptr->pgod; + if (pgod < 0) + v = "Nobody"; + else + v = deity_info[pgod].name; } }