OSDN Git Service

Vanillaにならって、キャラクターの状態を表わすグローバル変数の多くを
[hengband/hengband.git] / src / types.h
index 6d08df2..ed909c9 100644 (file)
@@ -108,6 +108,8 @@ struct object_kind
        u32b flags2;            /* Flags, set 2 */
        u32b flags3;            /* Flags, set 3 */
 
+       u32b gen_flags;         /* flags for generate */
+
        byte locale[4];         /* Allocation level(s) */
        byte chance[4];         /* Allocation chance(s) */
 
@@ -171,6 +173,8 @@ struct artifact_type
        u32b flags2;            /* Artifact Flags, set 2 */
        u32b flags3;            /* Artifact Flags, set 3 */
 
+       u32b gen_flags;         /* flags for generate */
+
        byte level;                     /* Artifact level */
        byte rarity;            /* Artifact rarity */
 
@@ -207,6 +211,8 @@ struct ego_item_type
        u32b flags1;            /* Ego-Item Flags, set 1 */
        u32b flags2;            /* Ego-Item Flags, set 2 */
        u32b flags3;            /* Ego-Item Flags, set 3 */
+
+       u32b gen_flags;         /* flags for generate */
 };
 
 
@@ -520,6 +526,8 @@ struct object_type
        u32b art_flags2;        /* Flags, set 2  for the random artifacts of*/
        u32b art_flags3;        /* Flags, set 3  Zangband */
 
+       u32b curse_flags;        /* Flags for curse */
+
        s16b next_o_idx;        /* Next object in stack (if any) */
 
        s16b held_m_idx;        /* Monster holding us (if any) */
@@ -561,19 +569,21 @@ typedef struct monster_type monster_type;
 
 struct monster_type
 {
-       s16b r_idx;                     /* Monster race index */
+       s16b r_idx;             /* Monster race index */
+       s16b ap_r_idx;          /* Monster race appearance index */
+       byte sub_align;         /* Sub-alignment for a neutral monster */
 
-       byte fy;                        /* Y location on map */
-       byte fx;                        /* X location on map */
+       byte fy;                /* Y location on map */
+       byte fx;                /* X location on map */
 
-       s16b hp;                        /* Current Hit points */
-       s16b maxhp;                     /* Max Hit points */
-       s16b max_maxhp;                 /* Max Max Hit points */
+       s16b hp;                /* Current Hit points */
+       s16b maxhp;             /* Max Hit points */
+       s16b max_maxhp;         /* Max Max Hit points */
 
        s16b csleep;            /* Inactive counter */
 
-       byte mspeed;            /* Monster "speed" */
-       s16b energy;            /* Monster "energy" */
+       byte mspeed;            /* Monster "speed" */
+       s16b energy_need;       /* Monster "energy" */
 
        byte fast;              /* Monster is stunned */
        byte slow;              /* Monster is stunned */
@@ -582,12 +592,12 @@ struct monster_type
        byte monfear;           /* Monster is afraid */
        byte invulner;          /* Monster is temporarily invulnerable */
 
-       byte cdis;                      /* Current dis from player */
+       byte cdis;              /* Current dis from player */
 
-       byte mflag;                     /* Extra monster flags */
-       byte mflag2;                    /* Extra monster flags */
+       byte mflag;             /* Extra monster flags */
+       byte mflag2;            /* Extra monster flags */
 
-       bool ml;                        /* Monster is "visible" */
+       bool ml;                /* Monster is "visible" */
 
        s16b hold_o_idx;        /* Object being held (if any) */
 
@@ -964,9 +974,9 @@ struct player_type
 
        byte hitdie;            /* Hit dice (sides) */
        u16b expfact;       /* Experience factor
-                                                * Note: was byte, causing overflow for Amberite
-                                                * characters (such as Amberite Paladins)
-                                                */
+                            * Note: was byte, causing overflow for Amberite
+                            * characters (such as Amberite Paladins)
+                            */
 
        s16b age;                       /* Characters age */
        s16b ht;                        /* Height */
@@ -1008,24 +1018,27 @@ struct player_type
        s16b stat_max_max[6];   /* Maximal "maximal" stat values */
        s16b stat_cur[6];       /* Current "natural" stat values */
 
+       s16b learned_spells;
+       s16b add_spells;
+
        u32b count;
 
-       s16b fast;                      /* Timed -- Fast */
-       s16b slow;                      /* Timed -- Slow */
-       s16b blind;                     /* Timed -- Blindness */
+       s16b fast;              /* Timed -- Fast */
+       s16b slow;              /* Timed -- Slow */
+       s16b blind;             /* Timed -- Blindness */
        s16b paralyzed;         /* Timed -- Paralysis */
        s16b confused;          /* Timed -- Confusion */
        s16b afraid;            /* Timed -- Fear */
-       s16b image;                     /* Timed -- Hallucination */
+       s16b image;             /* Timed -- Hallucination */
        s16b poisoned;          /* Timed -- Poisoned */
-       s16b cut;                       /* Timed -- Cut */
-       s16b stun;                      /* Timed -- Stun */
+       s16b cut;               /* Timed -- Cut */
+       s16b stun;              /* Timed -- Stun */
 
        s16b protevil;          /* Timed -- Protection */
        s16b invuln;            /* Timed -- Invulnerable */
        s16b ult_res;           /* Timed -- Ultimate Resistance */
-       s16b hero;                      /* Timed -- Heroism */
-       s16b shero;                     /* Timed -- Super Heroism */
+       s16b hero;              /* Timed -- Heroism */
+       s16b shero;             /* Timed -- Super Heroism */
        s16b shield;            /* Timed -- Shield Spell */
        s16b blessed;           /* Timed -- Blessed */
        s16b tim_invis;         /* Timed -- See Invisible */
@@ -1058,6 +1071,8 @@ struct player_type
        byte mimic_form;
        s16b tim_mimic;
        s16b tim_sh_fire;
+       s16b tim_sh_holy;
+       s16b tim_eyeeye;
 
         /* for mirror master */
        s16b tim_reflect;       /* Timed -- Reflect */
@@ -1072,30 +1087,88 @@ struct player_type
        s16b virtues[8];
        s16b vir_types[8];
 
-       s16b word_recall;       /* Word of recall counter */
-       byte recall_dungeon;
+       s16b word_recall;         /* Word of recall counter */
+       byte recall_dungeon;      /* Dungeon set to be recalled */
+
+       s16b energy_need;         /* Energy needed for next move */
+
+       s16b food;                /* Current nutrition */
+
+       u32b special_attack;      /* Special attack capacity -LM- */
+       u32b special_defense;     /* Special block capacity -LM- */
+       byte action;              /* Currently action */
 
-       s16b energy;            /* Current energy */
+       u32b spell_learned1;      /* bit mask of spells learned */
+       u32b spell_learned2;      /* bit mask of spells learned */
+       u32b spell_worked1;       /* bit mask of spells tried and worked */
+       u32b spell_worked2;       /* bit mask of spells tried and worked */
+       u32b spell_forgotten1;    /* bit mask of spells learned but forgotten */
+       u32b spell_forgotten2;    /* bit mask of spells learned but forgotten */
+       byte spell_order[64];     /* order spells learned/remembered/forgotten */
 
-       s16b food;                      /* Current nutrition */
+       s16b spell_exp[64];       /* Proficiency of spells */
+       s16b weapon_exp[5][64];   /* Proficiency of weapons */
+       s16b skill_exp[10];       /* Proficiency of misc. skill */
 
-       u32b total_weight;              /* Total weight being carried */
+       s32b magic_num1[108];     /* Array for non-spellbook type magic */
+       byte magic_num2[108];     /* Flags for non-spellbook type magics */
+
+       s16b mane_spell[MAX_MANE];
+       s16b mane_dam[MAX_MANE];
+       s16b mane_num;
+
+       s16b player_hp[PY_MAX_LEVEL];
+       char died_from[80];       /* What killed the player */
+       char history[4][60];      /* Textual "history" for the Player */
+
+       u16b total_winner;        /* Total winner */
+       u16b panic_save;          /* Panic save */
+
+       u16b noscore;             /* Cheating flags */
+
+       bool wait_report_score;   /* Waiting to report score */
+       bool is_dead;             /* Player is dead */
+
+       bool wizard;              /* Player is in wizard mode */
+
+       s16b riding;              /* Riding on a monster of this index */
+       byte knowledge;           /* Knowledge about yourself */
+       s32b visit;               /* Visited towns */
+
+       byte start_race;          /* Race at birth */
+       s32b old_race1;           /* Record of race changes */
+       s32b old_race2;           /* Record of race changes */
+       s16b old_realm;           /* Record of realm changes */
+
+       s16b pet_follow_distance; /* Length of the imaginary "leash" for pets */
+       s16b pet_extra_flags;     /* Various flags for controling pets */
 
-       u32b special_attack;    /* Special attack capacity -LM- */
-       u32b special_defense;   /* Special block capacity -LM- */
-       byte action;            /* Currently action */
+       s16b today_mon;           /* Wanted monster */
 
-       s16b health_who;                /* Health bar trackee */
+       bool dtrap;               /* Whether you are on trap-safe grids */
+
+
+       /*** Temporary fields ***/
+
+       bool playing;                   /* True if player is playing */
+       bool leaving;                   /* True if player is leaving */
+
+       byte exit_bldg;                 /* Goal obtained in arena? -KMW- */
+       byte leftbldg;                  /* did we just leave a special area? -KMW- */
+
+       bool leaving_dungeon;   /* True if player is leaving the dungeon */
+       bool teleport_town;
+
+       s16b health_who;        /* Health bar trackee */
 
        s16b monster_race_idx;  /* Monster race trackee */
 
        s16b object_kind_idx;   /* Object kind trackee */
 
        s16b new_spells;        /* Number of spells available */
-
        s16b old_spells;
-       s16b learned_spells;
-       s16b add_spells;
+
+       s16b old_food_aux;      /* Old value of food */
 
        bool old_cumber_armor;
        bool old_cumber_glove;
@@ -1107,10 +1180,6 @@ struct player_type
        bool old_monlite;
 
        s16b old_lite;          /* Old radius of lite (if any) */
-       s16b old_view;          /* Old radius of view (if any) */
-
-       s16b old_food_aux;      /* Old value of food */
-
 
        bool cumber_armor;      /* Mana draining armor */
        bool cumber_glove;      /* Mana draining gloves */
@@ -1132,6 +1201,18 @@ struct player_type
        s16b stat_use[6];       /* Current modified stats */
        s16b stat_top[6];       /* Maximal modified stats */
 
+       bool sutemi;
+       bool counter;
+
+       s32b align;                             /* Good/evil/neutral */
+       s16b run_py;
+       s16b run_px;
+
+
+       /*** Extracted fields ***/
+
+       u32b total_weight;      /* Total weight being carried */
+
        s16b stat_add[6];       /* Modifiers to stat values */
        s16b stat_ind[6];       /* Indexes into stat tables */
 
@@ -1174,16 +1255,11 @@ struct player_type
        bool sustain_con;       /* Keep constitution */
        bool sustain_chr;       /* Keep charisma */
 
-       bool aggravate;         /* Aggravate monsters */
-       bool teleport;          /* Random teleporting */
-       bool sutemi;
-       bool counter;
+       u32b cursed;            /* Player is cursed */
 
-       bool exp_drain;         /* Experience draining */
-
-       bool can_swim;                  /* No damage falling */
-       bool ffall;                     /* No damage falling */
-       bool lite;                      /* Permanent light */
+       bool can_swim;          /* No damage falling */
+       bool ffall;             /* No damage falling */
+       bool lite;              /* Permanent light */
        bool free_act;          /* Never paralyzed */
        bool see_inv;           /* Can see invisible */
        bool regenerate;        /* Regenerate hit pts */
@@ -1215,6 +1291,8 @@ struct player_type
        s16b to_d_m;                    /* Bonus to dam (misc) */
        s16b to_a;                      /* Bonus to ac */
 
+       s16b to_m_chance;               /* Minusses to cast chance */
+
        bool ryoute;
        bool migite;
        bool hidarite;
@@ -1243,36 +1321,42 @@ struct player_type
        byte tval_ammo;         /* Correct ammo tval */
 
        s16b pspeed;            /* Current speed */
+};
 
-       /*** Pet commands ***/
-       s16b pet_follow_distance; /* Length of the imaginary "leash" for pets */
-       s16b pet_extra_flags; /* Length of the imaginary "leash" for pets */
 
-       /*** Temporary fields ***/
-       byte exit_bldg;                 /* Goal obtained in arena? -KMW- */
      byte leftbldg;                  /* did we just leave a special area? -KMW- */
-       bool leaving;                   /* True if player is leaving */
+/*
+ * A structure to hold "rolled" information
+ */
+typedef struct birther birther;
 
-       bool leaving_dungeon;   /* True if player is leaving the dungeon */
-       bool teleport_town;
+struct birther
+{
+       byte psex;         /* Sex index */
+       byte prace;        /* Race index */
+       byte pclass;       /* Class index */
+       byte pseikaku;     /* Seikaku index */
+       byte realm1;       /* First magic realm */
+       byte realm2;       /* Second magic realm */
 
-       s32b align;                             /* Good/evil/neutral */
-       s16b today_mon;
+       s16b age;
+       s16b ht;
+       s16b wt;
+       s16b sc;
 
-       s16b riding;
-       byte knowledge;
-       s32b visit;
+       s32b au;
 
-       s32b magic_num1[108];
-       byte magic_num2[108];
+       s16b stat_max[6];       /* Current "maximal" stat values */
+       s16b stat_max_max[6];   /* Maximal "maximal" stat values */
+       s16b player_hp[PY_MAX_LEVEL];
 
-       byte start_race;
-       s32b old_race1;
-       s32b old_race2;
-       s16b old_realm;
+       s16b chaos_patron;
 
-       s16b run_py;
-       s16b run_px;
+       s16b vir_types[8];
+
+       char history[4][60];
+
+       byte quests;
+       bool quick_ok;
 };
 
 
@@ -1530,5 +1614,15 @@ struct dungeon_info_type {
 };
 
 
-
+/*
+ *  A structure type for entry of auto-picker/destroyer
+ */
+typedef struct {
+       cptr name;          /* Items which have 'name' as part of its name match */
+       cptr insc;          /* Items will be auto-inscribed as 'insc' */
+       u32b flag[2];       /* Misc. keyword to be matched */
+       byte action;        /* Auto-pickup or Destroy or Leave items */
+       byte dice;          /* Weapons which have more than 'dice' dice match */
+       byte bonus;         /* Items which have more than 'bonus' magical bonus match */
+} autopick_type;