bool fear_set_p(int v) { int old_lvl, new_lvl; bool notice = FALSE; /* Hack -- Force good values */ v = (v > 10000) ? 10000 : (v < 0) ? 0 : v; if (p_ptr->is_dead) return FALSE; old_lvl = _get_level(p_ptr->afraid); new_lvl = _get_level(v); if (new_lvl > old_lvl) { msg_format("You feel <color:%c>%s</color>.", _get_level_color(new_lvl), _get_level_name(new_lvl)); if (old_lvl <= FEAR_SCARED && one_in_(6) && !fear_save_p(v/5)) do_dec_stat(A_CHR); if (p_ptr->special_defense & KATA_MASK) { msg_print("Your posture gets loose."); p_ptr->special_defense &= ~KATA_MASK; p_ptr->update |= PU_BONUS; p_ptr->update |= PU_MONSTERS; p_ptr->redraw |= PR_STATE; p_ptr->redraw |= PR_STATUS; p_ptr->action = ACTION_NONE; } notice = TRUE; p_ptr->counter = FALSE; virtue_add(VIRTUE_VALOUR, -1); } else if (new_lvl < old_lvl) { if (new_lvl == FEAR_BOLD) msg_print("Your fears finally subside."); else { msg_format("You are no longer %s, but you still feel %s.", _get_level_name(old_lvl), _get_level_name(new_lvl)); } notice = TRUE; } p_ptr->afraid = v; p_ptr->redraw |= PR_EFFECTS; if (!notice) return FALSE; if (disturb_state) disturb(0, 0); handle_stuff(); return TRUE; }
static void _log( const gchar *log_domain, GLogLevelFlags log_level, const gchar *message, gpointer nothing G_GNUC_UNUSED) { gint64 timenow = qev_time / G_USEC_PER_SEC; gchar date[1024]; #ifdef QEV_LOG_DEBUG struct tm *now; now = localtime(&timenow); strftime(date, sizeof(date), "%H:%M:%S", now); #else snprintf(date, sizeof(date), "%" G_GINT64_FORMAT, timenow); #endif qev_lock_write_lock(&_lock); fprintf(_log_file, "%s - %s [%s] %s\n", log_domain, _get_level(log_level), date, message); qev_lock_write_unlock(&_lock); #ifdef QEV_TESTING __gcov_flush(); #endif }
static char _get_level_color(int v) { int lvl = _get_level(v); switch (lvl) { case FEAR_UNEASY: return 'U'; case FEAR_NERVOUS: return 'y'; case FEAR_SCARED: return 'R'; case FEAR_TERRIFIED: return 'r'; case FEAR_PETRIFIED: return 'v'; } return 'W'; }
static cptr _get_level_name(int v) { int lvl = _get_level(v); switch (lvl) { case FEAR_UNEASY: return "uneasy"; case FEAR_NERVOUS: return "nervous"; case FEAR_SCARED: return "scared"; case FEAR_TERRIFIED: return "terrified"; case FEAR_PETRIFIED: return "petrified"; } return "bold"; }
int fear_level_p(void) { return _get_level(p_ptr->afraid); }