diff options
Diffstat (limited to 'src/q_main.c')
-rw-r--r-- | src/q_main.c | 176 |
1 files changed, 0 insertions, 176 deletions
diff --git a/src/q_main.c b/src/q_main.c deleted file mode 100644 index a13b0790..00000000 --- a/src/q_main.c +++ /dev/null @@ -1,176 +0,0 @@ -bool_ quest_main_monsters_hook(char *fmt) -{ - s32b r_idx; - r_idx = get_next_arg(fmt); - - /* Sauron */ - if (r_idx == 860) - { - /* No Sauron until Necromancer dies */ - if (r_info[819].max_num) return TRUE; - } - /* Morgoth */ - else if (r_idx == 862) - { - /* No Morgoth until Sauron dies */ - if (r_info[860].max_num) return TRUE; - } - return FALSE; -} -bool_ quest_morgoth_hook(char *fmt) -{ - /* Using test_monster_name() here would be a lot less ugly, but would take much more time */ - monster_race *r_ptr = &r_info[862]; - - /* Need to kill him */ - if (!r_ptr->max_num) - { - /* Total winner */ - total_winner = WINNER_NORMAL; - has_won = WINNER_NORMAL; - quest[QUEST_MORGOTH].status = QUEST_STATUS_FINISHED; - - /* Redraw the "title" */ - p_ptr->redraw |= (PR_TITLE); - - /* Congratulations */ - if (quest[QUEST_ONE].status == QUEST_STATUS_FINISHED) - { - cmsg_print(TERM_L_GREEN, "*** CONGRATULATIONS ***"); - cmsg_print(TERM_L_GREEN, "You have banished Morgoth's foul spirit from Ea, and as you watch, a cleansing"); - cmsg_print(TERM_L_GREEN, "wind roars through the dungeon, dispersing the nether mists around where the"); - cmsg_print(TERM_L_GREEN, "body fell. You feel thanks, and a touch of sorrow, from the Valar"); - cmsg_print(TERM_L_GREEN, "for your deed. You will be forever heralded, your deed forever legendary."); - cmsg_print(TERM_L_GREEN, "You may retire (commit suicide) when you are ready."); - } - else - { - cmsg_print(TERM_VIOLET, "*** CONGRATULATIONS ***"); - cmsg_print(TERM_VIOLET, "You have banished Morgoth from Arda, and made Ea a safer place."); - cmsg_print(TERM_VIOLET, "As you look down at the dispersing mists around Morgoth, a sudden intuition"); - cmsg_print(TERM_VIOLET, "grasps you. Fingering the One Ring, you gather the nether mists around"); - cmsg_print(TERM_VIOLET, "yourself, and inhale deeply their seductive power."); - cmsg_print(TERM_VIOLET, "You will be forever feared, your orders forever obeyed."); - cmsg_print(TERM_VIOLET, "You may retire (commit suicide) when you are ready."); - } - - /* Continue the plot(maybe) */ - del_hook(HOOK_MONSTER_DEATH, quest_morgoth_hook); - process_hooks_restart = TRUE; - - /* Either ultra good if the one Ring is destroyed, or ultra evil if used */ - if (quest[QUEST_ONE].status == QUEST_STATUS_FINISHED) - *(quest[QUEST_MORGOTH].plot) = QUEST_ULTRA_GOOD; - else - *(quest[QUEST_MORGOTH].plot) = QUEST_ULTRA_EVIL; - quest[*(quest[QUEST_MORGOTH].plot)].init(*(quest[QUEST_MORGOTH].plot)); - } - return (FALSE); -} -bool_ quest_morgoth_dump_hook(char *fmt) -{ - if (quest[QUEST_MORGOTH].status >= QUEST_STATUS_COMPLETED) - { - if (quest[QUEST_ONE].status == QUEST_STATUS_FINISHED) - fprintf(hook_file, "\n You saved Arda and became a famed %s.", sp_ptr->winner); - else - fprintf(hook_file, "\n You became a new force of darkness and enslaved all free people."); - } - return (FALSE); -} -bool_ quest_morgoth_init_hook(int q_idx) -{ - if ((quest[QUEST_MORGOTH].status >= QUEST_STATUS_TAKEN) && (quest[QUEST_MORGOTH].status < QUEST_STATUS_FINISHED)) - { - add_hook(HOOK_MONSTER_DEATH, quest_morgoth_hook, "morgort_death"); - } - add_hook(HOOK_CHAR_DUMP, quest_morgoth_dump_hook, "morgoth_dump"); - add_hook(HOOK_NEW_MONSTER, quest_main_monsters_hook, "main_new_monster"); - return (FALSE); -} - -bool_ quest_sauron_hook(char *fmt) -{ - /* Using test_monster_name() here would be a lot less ugly, but would take much more time */ - monster_race *r_ptr = &r_info[860]; - - /* Need to kill him */ - if (!r_ptr->max_num) - { - cmsg_print(TERM_YELLOW, "Well done! You are on the way to slaying Morgoth..."); - quest[QUEST_SAURON].status = QUEST_STATUS_FINISHED; - - quest[QUEST_MORGOTH].status = QUEST_STATUS_TAKEN; - quest_describe(QUEST_MORGOTH); - - del_hook(HOOK_MONSTER_DEATH, quest_sauron_hook); - add_hook(HOOK_MONSTER_DEATH, quest_morgoth_hook, "morgort_death"); - *(quest[QUEST_SAURON].plot) = QUEST_MORGOTH; - quest_morgoth_init_hook(QUEST_MORGOTH); - - process_hooks_restart = TRUE; - } - return (FALSE); -} - -bool_ quest_sauron_resurect_hook(char *fmt) -{ - s32b m_idx = get_next_arg(fmt); - monster_type *m_ptr = &m_list[m_idx]; - monster_race *r_ptr = &r_info[m_ptr->r_idx]; - - if ((r_ptr->flags7 & RF7_NAZGUL) && r_info[860].max_num) - { - msg_format("Somehow you feel %s is not totally destroyed...", (r_ptr->flags1 & RF1_FEMALE ? "she" : "he")); - r_ptr->max_num = 1; - } - else if ((m_ptr->r_idx == 860) && (quest[QUEST_ONE].status < QUEST_STATUS_FINISHED)) - { - msg_print("Sauron will not be permanently defeated until the One Ring is either destroyed or used..."); - r_ptr->max_num = 1; - } - return FALSE; -} - -bool_ quest_sauron_init_hook(int q_idx) -{ - if ((quest[QUEST_SAURON].status >= QUEST_STATUS_TAKEN) && (quest[QUEST_SAURON].status < QUEST_STATUS_FINISHED)) - { - add_hook(HOOK_MONSTER_DEATH, quest_sauron_hook, "sauron_death"); - } - add_hook(HOOK_NEW_MONSTER, quest_main_monsters_hook, "main_new_monster"); - add_hook(HOOK_MONSTER_DEATH, quest_sauron_resurect_hook, "sauron_resurect_death"); - return (FALSE); -} - -bool_ quest_necro_hook(char *fmt) -{ - /* Using test_monster_name() here would be a lot less ugly, but would take much more time */ - monster_race *r_ptr = &r_info[819]; - - /* Need to kill him */ - if (!r_ptr->max_num) - { - cmsg_print(TERM_YELLOW, "You see the spirit of the necromancer rise and flee..."); - cmsg_print(TERM_YELLOW, "It looks like it was indeed Sauron..."); - cmsg_print(TERM_YELLOW, "You should report that to Galadriel as soon as possible."); - - quest[QUEST_NECRO].status = QUEST_STATUS_FINISHED; - - *(quest[QUEST_NECRO].plot) = QUEST_ONE; - quest[*(quest[QUEST_NECRO].plot)].init(*(quest[QUEST_NECRO].plot)); - - del_hook(HOOK_MONSTER_DEATH, quest_necro_hook); - process_hooks_restart = TRUE; - } - return (FALSE); -} -bool_ quest_necro_init_hook(int q_idx) -{ - if ((quest[QUEST_NECRO].status >= QUEST_STATUS_TAKEN) && (quest[QUEST_NECRO].status < QUEST_STATUS_FINISHED)) - { - add_hook(HOOK_MONSTER_DEATH, quest_necro_hook, "necro_death"); - } - add_hook(HOOK_NEW_MONSTER, quest_main_monsters_hook, "main_new_monster"); - return (FALSE); -} |