X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Ftypes.h;h=8e34eece130b214320ef7b97e052c373f807251a;hb=9c3545e756dbf1b752dd833400aaf6eb90be780b;hp=53cf6724b1f2461b082a5fa71350b0318d0eb9bd;hpb=24824505a56a73db0609c79be27e2c91d87f9ba0;p=hengband%2Fhengband.git diff --git a/src/types.h b/src/types.h index 53cf6724b..8e34eece1 100644 --- a/src/types.h +++ b/src/types.h @@ -52,7 +52,7 @@ * Feature state structure * * - Action (FF_*) - * - Result (FEAT_*) + * - Result (f_info ID) */ typedef struct feature_state feature_state; @@ -84,6 +84,7 @@ struct feature_type feature_state state[MAX_FEAT_STATES]; + byte subtype; byte power; byte d_attr[F_LIT_MAX]; /* Default feature attribute */ @@ -106,6 +107,7 @@ struct object_kind { u32b name; /* Name (offset) */ u32b text; /* Text (offset) */ + u32b flavor_name; /* Flavor name (offset) */ byte tval; /* Object type */ byte sval; /* Object sub type */ @@ -143,7 +145,7 @@ struct object_kind byte x_char; /* Desired object character */ - byte flavor; /* Special object flavor (or zero) */ + s16b flavor; /* Special object flavor (or zero) */ bool easy_know; /* This object is always known (if aware) */ @@ -151,6 +153,8 @@ struct object_kind bool aware; /* The player is "aware" of the item's effects */ bool tried; /* The player has "tried" one of the items */ + + byte act_idx; /* Activative ability index */ }; @@ -198,6 +202,8 @@ struct artifact_type byte max_num; /* Unused (should be "1") */ s16b floor_id; /* Leaved on this location last time */ + + byte act_idx; /* Activative ability index */ }; @@ -229,6 +235,8 @@ struct ego_item_type u32b flags[TR_FLAG_SIZE]; /* Ego-Item Flags */ u32b gen_flags; /* flags for generate */ + + byte act_idx; /* Activative ability index */ }; @@ -347,7 +355,8 @@ struct monster_race s16b r_sights; /* Count sightings of this monster */ s16b r_deaths; /* Count deaths from this monster */ - s16b r_pkills; /* Count monsters killed in this life */ + s16b r_pkills; /* Count visible monsters killed in this life */ + s16b r_akills; /* Count all monsters killed in this life */ s16b r_tkills; /* Count monsters killed in all lives */ byte r_wake; /* Number of times woken up (?) */ @@ -524,10 +533,10 @@ struct object_type byte name2; /* Ego-Item type, if any */ byte xtra1; /* Extra info type (now unused) */ - byte xtra2; /* Extra info index */ - byte xtra3; /* Extra info */ - s16b xtra4; /* Extra info */ - s16b xtra5; /* Extra info */ + byte xtra2; /* Extra info activation index */ + byte xtra3; /* Extra info for weaponsmith */ + s16b xtra4; /* Extra info fuel or captured monster's current HP */ + s16b xtra5; /* Extra info captured monster's max HP */ s16b to_h; /* Plusses to hit */ s16b to_d; /* Plusses to damage */ @@ -555,27 +564,6 @@ struct object_type s16b next_o_idx; /* Next object in stack (if any) */ s16b held_m_idx; /* Monster holding us (if any) */ - -#ifdef SCRIPT_OBJ_KIND - char *name; - - byte d_attr; /* Default object attribute */ - byte d_char; /* Default object character */ - - - byte x_attr; /* Desired object attribute */ - byte x_char; /* Desired object character */ - - - byte flavor; /* Special object flavor (or zero) */ - - bool easy_know; /* This object is always known (if aware) */ - - - bool aware; /* The player is "aware" of the item's effects */ - - bool tried; /* The player has "tried" one of the items */ -#endif /* SCRIPT_OBJ_KIND */ }; @@ -603,19 +591,13 @@ struct monster_type s16b hp; /* Current Hit points */ s16b maxhp; /* Max Hit points */ s16b max_maxhp; /* Max Max Hit points */ + u32b dealt_damage; /* Sum of damages dealt by player */ - s16b csleep; /* Inactive counter */ + s16b mtimed[MAX_MTIMED]; /* Timed status counter */ byte mspeed; /* Monster "speed" */ s16b energy_need; /* Monster "energy" */ - byte fast; /* Monster is stunned */ - byte slow; /* Monster is stunned */ - byte stunned; /* Monster is stunned */ - byte confused; /* Monster is confused */ - byte monfear; /* Monster is afraid */ - byte invulner; /* Monster is temporarily invulnerable */ - byte cdis; /* Current dis from player */ byte mflag; /* Extra monster flags */ @@ -999,7 +981,7 @@ struct player_type s32b max_max_exp; /* Max max experience (only to calculate score) */ s32b max_exp; /* Max experience */ s32b exp; /* Cur experience */ - u16b exp_frac; /* Cur exp frac (times 2^16) */ + u32b exp_frac; /* Cur exp frac (times 2^16) */ s16b lev; /* Level */ @@ -1013,13 +995,13 @@ struct player_type s32b wilderness_y; bool wild_mode; - s16b mhp; /* Max hit pts */ - s16b chp; /* Cur hit pts */ - u16b chp_frac; /* Cur hit frac (times 2^16) */ + s32b mhp; /* Max hit pts */ + s32b chp; /* Cur hit pts */ + u32b chp_frac; /* Cur hit frac (times 2^16) */ - s16b msp; /* Max mana pts */ - s16b csp; /* Cur mana pts */ - u16b csp_frac; /* Cur mana frac (times 2^16) */ + s32b msp; /* Max mana pts */ + s32b csp; /* Cur mana pts */ + u32b csp_frac; /* Cur mana frac (times 2^16) */ s16b max_plv; /* Max Player Level */ @@ -1070,7 +1052,7 @@ struct player_type s16b tim_regen; s16b kabenuke; s16b tim_stealth; - s16b tim_ffall; + s16b tim_levitation; s16b tim_sh_touki; s16b lightspeed; s16b tsubureru; @@ -1101,6 +1083,7 @@ struct player_type byte recall_dungeon; /* Dungeon set to be recalled */ s16b energy_need; /* Energy needed for next move */ + s16b enchant_energy_need; /* Energy needed for next upkeep effect */ s16b food; /* Current nutrition */ @@ -1127,6 +1110,8 @@ struct player_type s16b mane_dam[MAX_MANE]; s16b mane_num; + s16b concent; /* Sniper's concentration level */ + s16b player_hp[PY_MAX_LEVEL]; char died_from[80]; /* What killed the player */ cptr last_message; /* Last message on death or retirement */ @@ -1161,6 +1146,9 @@ struct player_type bool autopick_autoregister; /* auto register is in-use or not */ + byte feeling; /* Most recent dungeon feeling */ + s32b feeling_turn; /* The turn of the last dungeon feeling */ + /*** Temporary fields ***/ @@ -1272,7 +1260,7 @@ struct player_type u32b cursed; /* Player is cursed */ bool can_swim; /* No damage falling */ - bool ffall; /* No damage falling */ + bool levitation; /* No damage falling */ bool lite; /* Permanent light */ bool free_act; /* Never paralyzed */ bool see_inv; /* Can see invisible */ @@ -1532,7 +1520,7 @@ typedef struct tag_type tag_type; struct tag_type { int tag; - void *pointer; + int index; }; typedef bool (*monster_hook_type)(int r_idx); @@ -1586,6 +1574,15 @@ struct high_score char how[40]; /* Method of death (string) */ }; + +typedef struct +{ + s16b feat; /* Feature tile */ + byte percent; /* Chance of type */ +} +feat_prob; + + /* A structure for the != dungeon types */ typedef struct dungeon_info_type dungeon_info_type; struct dungeon_info_type { @@ -1595,25 +1592,16 @@ struct dungeon_info_type { byte dy; byte dx; - s16b floor1; /* Floor tile 1 */ - byte floor_percent1; /* Chance of type 1 */ - s16b floor2; /* Floor tile 2 */ - byte floor_percent2; /* Chance of type 2 */ - s16b floor3; /* Floor tile 3 */ - byte floor_percent3; /* Chance of type 3 */ - s16b outer_wall; /* Outer wall tile */ - s16b inner_wall; /* Inner wall tile */ - s16b stream1; /* stream tile */ - s16b stream2; /* stream tile */ - s16b fill_type1; /* Cave tile 1 */ - byte fill_percent1; /* Chance of type 1 */ - s16b fill_type2; /* Cave tile 2 */ - byte fill_percent2; /* Chance of type 2 */ - s16b fill_type3; /* Cave tile 3 */ - byte fill_percent3; /* Chance of type 3 */ - s16b mindepth; /* Minimal depth */ - s16b maxdepth; /* Maximal depth */ - byte min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */ + feat_prob floor[DUNGEON_FEAT_PROB_NUM]; /* Floor probability */ + feat_prob fill[DUNGEON_FEAT_PROB_NUM]; /* Cave wall probability */ + s16b outer_wall; /* Outer wall tile */ + s16b inner_wall; /* Inner wall tile */ + s16b stream1; /* stream tile */ + s16b stream2; /* stream tile */ + + s16b mindepth; /* Minimal depth */ + s16b maxdepth; /* Maximal depth */ + byte min_plev; /* Minimal plev needed to enter -- it's an anti-cheating mesure */ s16b pit; s16b nest; byte mode; /* Mode of combinaison of the monster flags */ @@ -1696,3 +1684,50 @@ typedef struct byte tval; /* tval of prize (0 means no prize) */ byte sval; /* sval of prize */ } arena_type; + + +/* + * A structure type for doors + */ +typedef struct +{ + s16b open; + s16b broken; + s16b closed; + s16b locked[MAX_LJ_DOORS]; + s16b num_locked; + s16b jammed[MAX_LJ_DOORS]; + s16b num_jammed; +} door_type; + + +#ifdef TRAVEL +/* + * A structure type for travel command + */ +typedef struct { + int run; /* Remaining grid number */ + int cost[MAX_HGT][MAX_WID]; + int x; /* Target X */ + int y; /* Target Y */ + int dir; /* Running direction */ +} travel_type; +#endif + +typedef struct { + cptr flag; + byte index; + byte level; + s32b value; + struct { + int constant; + int dice; + } timeout; + cptr desc; +} activation_type; + +typedef struct { + int flag; + int type; + cptr name; +} dragonbreath_type;