1 /** 2 * @file 3 * @brief Collects information for output of status effects. 4 **/ 5 6 #pragma once 7 8 #include "duration-type.h" 9 #include "mpr.h" 10 11 enum status_type 12 { 13 STATUS_AIRBORNE = NUM_DURATIONS + 1, 14 STATUS_BEHELD, 15 STATUS_CONTAMINATION, 16 STATUS_NET, 17 STATUS_ALIVE_STATE, 18 STATUS_REGENERATION, 19 STATUS_DIG, 20 STATUS_SICK, 21 STATUS_SPEED, 22 STATUS_STR_ZERO, 23 STATUS_INT_ZERO, 24 STATUS_DEX_ZERO, 25 STATUS_BACKLIT, 26 STATUS_UMBRA, 27 STATUS_CONSTRICTED, 28 STATUS_MANUAL, 29 STATUS_AUGMENTED, 30 STATUS_TERRAIN, 31 STATUS_SILENCE, 32 STATUS_BEOGH, 33 STATUS_RECALL, 34 STATUS_LIQUEFIED, 35 STATUS_DRAINED, 36 STATUS_RAY, 37 STATUS_INVISIBLE, 38 STATUS_MAGIC_SAPPED, 39 STATUS_BRIBE, 40 STATUS_CLOUD, 41 STATUS_ORB, 42 STATUS_STILL_WINDS, 43 STATUS_MISSILES, 44 STATUS_SERPENTS_LASH, 45 STATUS_HEAVENLY_STORM, 46 STATUS_ZOT, 47 STATUS_CURL, 48 STATUS_MAXWELLS, 49 STATUS_LAST_STATUS = STATUS_MAXWELLS 50 }; 51 52 struct status_info 53 { status_infostatus_info54 status_info() : light_colour(0) 55 { 56 }; 57 58 int light_colour; 59 string light_text; // status light 60 string short_text; // @: line 61 string long_text; // @ message 62 }; 63 64 // status should be a duration or status_type 65 // *info will be filled in as appropriate for current 66 // character state 67 // returns true if the status has a description 68 bool fill_status_info(int status, status_info& info); 69 70 const char *duration_name(duration_type dur); 71 bool duration_dispellable(duration_type dur); 72 void init_duration_index(); 73 74 bool duration_decrements_normally(duration_type dur); 75 const char *duration_end_message(duration_type dur); 76 void duration_end_effect(duration_type dur); 77 const char *duration_mid_message(duration_type dur); 78 int duration_mid_offset(duration_type dur); 79 int duration_expire_point(duration_type dur); 80 msg_channel_type duration_mid_chan(duration_type dur); 81