Angband
Macros | Functions | Variables
player-timed.c File Reference

Timed effects handling. More...

#include "angband.h"
#include "cave.h"
#include "mon-util.h"
#include "obj-identify.h"
#include "player-timed.h"
#include "player-util.h"
#include "list-player-timed.h"

Macros

#define TMD(a, b, c, d, e, f, g, h, i, j)   { b, c, d, e, f, g, h, i, j },
#define TMD(a, b, c, d, e, f, g, h, i, j)   #a,

Functions

static bool set_stun (struct player *p, int v)
 The "stun" and "cut" statuses need to be handled by special functions of their own, as they are more complex than the ones handled by the generic code.
static bool set_cut (struct player *p, int v)
 Set "player->timed[TMD_CUT]", notice observable changes.
int timed_name_to_idx (const char *name)
const char * timed_idx_to_name (int type)
int timed_protect_flag (int type)
bool player_set_timed (struct player *p, int idx, int v, bool notify)
 Set a timed event (except timed resists, cutting and stunning).
bool player_inc_timed (struct player *p, int idx, int v, bool notify, bool check)
 Increase the timed effect idx by v.
bool player_dec_timed (struct player *p, int idx, int v, bool notify)
 Decrease the timed effect idx by v.
bool player_clear_timed (struct player *p, int idx, bool notify)
 Clear the timed effect idx.
bool player_set_food (struct player *p, int v)
 Set "player->food", notice observable changes.

Variables

static timed_effect effects []
static const char * timed_name_list []

Detailed Description

Timed effects handling.

Copyright (c) 1997 Ben Harrison Copyright (c) 2007 A Sidwell andi@.nosp@m.takk.nosp@m.aria..nosp@m.org

This work is free software; you can redistribute it and/or modify it under the terms of either:

a) the GNU General Public License as published by the Free Software Foundation, version 2, or

b) the "Angband licence": 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. Other copyrights may also apply.

Macro Definition Documentation

#define TMD (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  i,
 
)    { b, c, d, e, f, g, h, i, j },
#define TMD (   a,
  b,
  c,
  d,
  e,
  f,
  g,
  h,
  i,
 
)    #a,

Function Documentation

bool player_clear_timed ( struct player p,
int  idx,
bool  notify 
)

Clear the timed effect idx.

Mention this if notify is TRUE.

References player_set_timed().

Referenced by do_cmd_wiz_cure_all(), effect_handler_CURE(), and wiz_cheat_death().

bool player_dec_timed ( struct player p,
int  idx,
int  v,
bool  notify 
)

Decrease the timed effect idx by v.

Mention this if notify is TRUE.

References FALSE, player_set_timed(), player::timed, and TMD_MAX.

Referenced by decrease_timeouts(), and effect_handler_TIMED_DEC().

bool player_inc_timed ( struct player p,
int  idx,
int  v,
bool  notify,
bool  check 
)
bool player_set_food ( struct player p,
int  v 
)

Set "player->food", notice observable changes.

The "player->food" variable can get as large as 20000, allowing the addition of the most "filling" item, Elvish Waybread, which adds 7500 food units, without overflowing the 32767 maximum limit.

Perhaps we should disturb the player with various messages, especially messages about hunger status changes. XXX XXX XXX

Digestion of food is handled in "dungeon.c", in which, normally, the player digests about 20 food units per 100 game turns, more when "fast", more when "regenerating", less with "slow digestion".

References disturb(), FALSE, player::food, handle_stuff(), MAX, MIN, msg, msgt(), PR_STATUS, PU_BONUS, PY_FOOD_ALERT, PY_FOOD_FAINT, PY_FOOD_FULL, PY_FOOD_MAX, PY_FOOD_WEAK, player_upkeep::redraw, TRUE, player_upkeep::update, and player::upkeep.

Referenced by do_cmd_wiz_cure_all(), effect_handler_NOURISH(), effect_handler_SET_NOURISH(), process_world(), and wiz_cheat_death().

bool player_set_timed ( struct player p,
int  idx,
int  v,
bool  notify 
)
static bool set_cut ( struct player p,
int  v 
)
static

Set "player->timed[TMD_CUT]", notice observable changes.

Note the special code to only notice "range" changes.

References disturb(), FALSE, handle_stuff(), msgt(), PR_STATUS, PU_BONUS, player_upkeep::redraw, player::timed, TRUE, player_upkeep::update, and player::upkeep.

Referenced by player_set_timed().

static bool set_stun ( struct player p,
int  v 
)
static

The "stun" and "cut" statuses need to be handled by special functions of their own, as they are more complex than the ones handled by the generic code.

Set "player->timed[TMD_STUN]", notice observable changes.

Note the special code to only notice "range" changes.

References disturb(), FALSE, handle_stuff(), msgt(), PR_STATUS, PU_BONUS, player_upkeep::redraw, player::timed, TRUE, player_upkeep::update, and player::upkeep.

Referenced by player_set_timed().

const char* timed_idx_to_name ( int  type)

References timed_name_list, TMD_MAX, and type.

int timed_name_to_idx ( const char *  name)

References i, my_stricmp(), and timed_name_list.

Referenced by effect_param().

int timed_protect_flag ( int  type)

References timed_effect::fail, and type.

Referenced by unset_spells().

Variable Documentation

timed_effect effects[]
static
const char* timed_name_list[]
static