File: status.h

package info (click to toggle)
crawl 2%3A0.34.0-1
  • links: PTS, VCS
  • area: main
  • in suites: forky, sid
  • size: 100,188 kB
  • sloc: cpp: 363,709; ansic: 27,765; javascript: 9,516; python: 8,463; perl: 3,293; java: 3,132; xml: 2,380; makefile: 1,835; sh: 611; objc: 250; cs: 15; sed: 9; lisp: 3
file content (97 lines) | stat: -rw-r--r-- 2,415 bytes parent folder | download | duplicates (2)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
/**
 * @file
 * @brief Collects information for output of status effects.
**/

#pragma once

#include "duration-type.h"
#include "mpr.h"

enum status_type
{
    STATUS_AIRBORNE = NUM_DURATIONS + 1,
    STATUS_BEHELD,
    STATUS_CONTAMINATION,
    STATUS_NET,
    STATUS_CHANNELLING_SPELL,
    STATUS_REGENERATION,
    STATUS_DIG,
    STATUS_SPEED,
    STATUS_BACKLIT,
    STATUS_UMBRA,
    STATUS_CONSTRICTED,
    STATUS_MANUAL,
    STATUS_AUGMENTED,
    STATUS_TERRAIN,
    STATUS_SILENCE,
    STATUS_BEOGH,
    STATUS_LIQUEFIED,
    STATUS_DRAINED,
    STATUS_INVISIBLE,
    STATUS_BRIBE,
    STATUS_CLOUD,
    STATUS_ORB,
    STATUS_STILL_WINDS,
    STATUS_SERPENTS_LASH,
    STATUS_HEAVENLY_STORM,
    STATUS_ZOT,
    STATUS_DUEL,
    STATUS_NO_SCROLL,
    STATUS_RF_ZERO,
    STATUS_CORROSION,
    STATUS_NO_POTIONS,
    STATUS_LOWERED_WL,
    STATUS_PEEKING,
    STATUS_IN_DEBT,
    STATUS_CANINE_FAMILIAR_ACTIVE,
    STATUS_BLACK_TORCH,
    STATUS_GEM,
    STATUS_REV,
    STATUS_DRACONIAN_BREATH,
    STATUS_GRAVE_CLAW_UNAVAILABLE,
    STATUS_CRUCIBLE_DEBT,
    STATUS_STAT_ZERO,
    STATUS_TRICKSTER,
    STATUS_MNEMOPHAGE,
    STATUS_SHROUD,
    STATUS_CLAUSTROPHOBIA,
    STATUS_OSTRACISM,
    STATUS_TESSERACT,
    STATUS_SUNDER_READY,
    STATUS_LAST_STATUS = STATUS_SUNDER_READY
};

struct status_info
{
    status_info() : light_colour(0)
    {
    };

    int light_colour;
    string light_text; // status light
    string short_text; // @: line
    string long_text;  // @ message
};

// status should be a duration or status_type
// *info will be filled in as appropriate for current
// character state
// returns true if the status has a description
bool fill_status_info(int status, status_info& info);

const char *duration_name(duration_type dur);
duration_type duration_by_name(const string &name);
vector<duration_type> all_duration_with_flag(uint64_t flag);
bool duration_dispellable(duration_type dur);
bool duration_negative(duration_type dur);
bool duration_extended_by_attacks(duration_type dur);
void init_duration_index();

bool duration_decrements_normally(duration_type dur);
const char *duration_end_message(duration_type dur);
void duration_end_effect(duration_type dur);
const char *duration_expire_message(duration_type dur);
int duration_expire_offset(duration_type dur);
int duration_expire_point(duration_type dur);
msg_channel_type duration_expire_chan(duration_type dur);