From 4f8b58cc5366bfc2ea3b56fe6ff0443464d10f0f Mon Sep 17 00:00:00 2001 From: Manoj Srivastava Date: Wed, 14 May 2014 23:54:09 -0700 Subject: tome (2.3.11-ah-2) unstable; urgency=low * Modified the install paths to deploy to the FHS compliant /usr/games/tome and /var/games/tome, as we have always done * This is a major change, and includes theming. Some of the options have changed. Because of this, the manual page has been removed; there is a command line help option and in game help until the manual page is rewritten. # imported from the archive --- src/gods.c | 139 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 139 insertions(+) create mode 100644 src/gods.c (limited to 'src/gods.c') diff --git a/src/gods.c b/src/gods.c new file mode 100644 index 00000000..b8b8fd3a --- /dev/null +++ b/src/gods.c @@ -0,0 +1,139 @@ +/* File: gods.c */ + +/* Purpose: Deities code */ + +/* + * Copyright (c) 2002 DarkGod + * + * This software may be copied and distributed for educational, research, and + * not for profit purposes provided that this copyright and statement are + * included in all such copies. + */ + +#include "angband.h" + +/* + * Add amt piety is god is god + */ +void inc_piety(int god, s32b amt) +{ + s32b old = p_ptr->grace; + + if ((god == GOD_ALL) || (god == p_ptr->pgod)) + { + set_grace(p_ptr->grace + amt); + + if(amt > 0 && p_ptr->grace <= old) + set_grace(300000); + + if(amt < 0 && p_ptr->grace >= old) + set_grace(-300000); + } +} + +/* + * Renounce to religion + */ +void abandon_god(int god) +{ + if ((god == GOD_ALL) || (god == p_ptr->pgod)) + { + p_ptr->pgod = GOD_NONE; + set_grace(0); + } +} + +/* + * Get a religion + */ +void follow_god(int god, bool_ silent) +{ + /* Poor unbelievers, i'm so mean ... BOUHAHAHA */ + if (get_skill(SKILL_ANTIMAGIC)) + { + msg_print("Don't be silly; you don't believe in gods."); + return; + } + + /* Are we allowed ? */ + if (process_hooks(HOOK_FOLLOW_GOD, "(d,s)", god, "ask")) + return; + + if (p_ptr->pgod == GOD_NONE) + { + p_ptr->pgod = god; + + /* Melkor offer Udun magic */ + GOD(GOD_MELKOR) + { + s_info[SKILL_UDUN].hidden = FALSE; + if (!silent) msg_print("You feel the dark powers of Melkor in you. You can now use the Udun skill."); + } + + /* Anything to be done? */ + process_hooks(HOOK_FOLLOW_GOD, "(d,s)", god, "done"); + } +} + +/* + * Show religious info. + */ +bool_ show_god_info(bool_ ext) +{ + int pgod = p_ptr->pgod; + + deity_type *d_ptr; + + if (pgod < 0) + { + msg_print("You don't worship anyone."); + msg_print(NULL); + return FALSE; + } + else + { + int i; + + d_ptr = &deity_info[pgod]; + + msg_print(NULL); + + character_icky = TRUE; + Term_save(); + + text_out(format("You worship %s. ", d_ptr->name)); + for (i = 0; (i < 10) && (strcmp(d_ptr->desc[i], "")); i++) + text_out(d_ptr->desc[i]); + text_out("\n"); + + inkey(); + + Term_load(); + character_icky = FALSE; + } + + return TRUE; +} + +/* + * Rescale the wisdom value to a 0 <-> max range + */ +int wisdom_scale(int max) +{ + int i = p_ptr->stat_ind[A_WIS]; + + return (i * max) / 37; +} + +/* Find a god by name */ +int find_god(cptr name) +{ + int i; + + for (i = 0; i < max_gods; i++) + { + /* The name matches */ + if (streq(deity_info[i].name, name)) return (i); + } + return -1; +} -- cgit v1.2.3