Annotation of early-roguelike/arogue7/eat.c, Revision 1.1
1.1 ! rubenllo 1: /*
! 2: * eat.c - Functions for dealing with digestion
! 3: *
! 4: * Advanced Rogue
! 5: * Copyright (C) 1984, 1985, 1986 Michael Morgan, Ken Dalka and AT&T
! 6: * All rights reserved.
! 7: *
! 8: * Based on "Rogue: Exploring the Dungeons of Doom"
! 9: * Copyright (C) 1980, 1981 Michael Toy, Ken Arnold and Glenn Wichman
! 10: * All rights reserved.
! 11: *
! 12: * See the file LICENSE.TXT for full copyright and licensing information.
! 13: */
! 14:
! 15: #include "curses.h"
! 16: #include "rogue.h"
! 17:
! 18: /*
! 19: * eat:
! 20: * He wants to eat something, so let him try
! 21: */
! 22:
! 23: void
! 24: eat(void)
! 25: {
! 26: register struct linked_list *item;
! 27: int which;
! 28: unsigned long temp;
! 29:
! 30: if (player.t_action != C_EAT) {
! 31: if ((item = get_item(pack, "eat", FOOD, FALSE, FALSE)) == NULL)
! 32: return;
! 33:
! 34: player.t_using = item; /* Remember what it is */
! 35: player.t_action = C_EAT; /* We are eating */
! 36: which = (OBJPTR(item))->o_which;
! 37: player.t_no_move = max(foods[which].mi_food/100, 1) * movement(&player);
! 38: return;
! 39: }
! 40:
! 41: /* We have waited our time, let's eat the food */
! 42: item = player.t_using;
! 43: player.t_using = NULL;
! 44: player.t_action = A_NIL;
! 45:
! 46: which = (OBJPTR(item))->o_which;
! 47: if ((food_left += foods[which].mi_food) > STOMACHSIZE)
! 48: food_left = STOMACHSIZE;
! 49: del_pack(item);
! 50: if (hungry_state == F_SATIATED && food_left == STOMACHSIZE && rnd(4) == 1) {
! 51: pstats.s_hpt = 0;
! 52: msg ("You choke on all that food and die! -- More --");
! 53: wait_for(' ');
! 54: death(D_FOOD_CHOKE);
! 55: }
! 56: if (food_left >= STOMACHSIZE-MORETIME) {
! 57: hungry_state = F_SATIATED;
! 58: msg ("You have trouble getting all that food down.");
! 59: msg ("Your stomach feels like its about to burst!");
! 60: }
! 61: else {
! 62: hungry_state = F_OKAY;
! 63: switch (rnd(3)) {
! 64: case 0: msg("My, that was a yummy %s", foods[which].mi_name);
! 65: when 1: msg("Mmmm, that was a tasty %s", foods[which].mi_name);
! 66: when 2: msg("Wow, that was a scrumptious %s", foods[which].mi_name);
! 67: }
! 68: }
! 69: updpack(TRUE, &player);
! 70: switch(which) {
! 71: case E_WHORTLEBERRY:
! 72: add_abil[A_INTELLIGENCE](1);
! 73:
! 74: when E_SWEETSOP:
! 75: add_abil[A_DEXTERITY](1);
! 76:
! 77: when E_SOURSOP:
! 78: add_abil[A_STRENGTH](1);
! 79:
! 80: when E_SAPODILLA:
! 81: add_abil[A_WISDOM](1);
! 82:
! 83: when E_RAMBUTAN:
! 84: add_abil[A_CONSTITUTION](1);
! 85:
! 86: when E_PEACH:
! 87: add_abil[A_CHARISMA](1);
! 88:
! 89: when E_STRAWBERRY:
! 90: temp = pstats.s_exp/100;
! 91: pstats.s_exp += temp;
! 92: if (temp > 0)
! 93: msg("You feel slightly more experienced now");
! 94: check_level();
! 95:
! 96: when E_PITANGA:
! 97: max_stats.s_hpt++;
! 98: pstats.s_hpt++;
! 99: if (terse)
! 100: msg("You feel a bit tougher now");
! 101: else
! 102: msg("You feel a bit tougher now. Go get 'em!");
! 103:
! 104: when E_HAGBERRY:
! 105: pstats.s_arm--;
! 106: msg("Your skin feels more resilient now");
! 107:
! 108: when E_DEWBERRY:
! 109: if (chant_time > 0) {
! 110: chant_time -= 50;
! 111: if (chant_time < 0)
! 112: chant_time = 0;
! 113: msg("You feel you have more chant ability");
! 114: }
! 115: if (pray_time > 0) {
! 116: pray_time -= 50;
! 117: if (pray_time < 0)
! 118: pray_time = 0;
! 119: msg("You feel you have more prayer ability");
! 120: }
! 121: if (spell_power > 0) {
! 122: spell_power -= 50;
! 123: if (spell_power < 0)
! 124: spell_power = 0;
! 125: msg("You feel you have more spell casting ability");
! 126: }
! 127:
! 128: otherwise: /* all the foods don't have to do something */
! 129: break;
! 130: }
! 131: }
CVSweb