OSDN Git Service

[Refactor] #37783 (2.2.1.5) 「魅了」と「支配」処理の分化作業中。 / Differentiating "charm" and "control".
[hengband/hengband.git] / src / files.c
index 4ed4300..8e571dd 100644 (file)
@@ -122,9 +122,9 @@ void safe_setuid_grab(void)
  * Hack -- We will always extract at least one token
  * </pre>
  */
-s16b tokenize(char *buf, s16b num, char **tokens, int mode)
+s16b tokenize(char *buf, s16b num, char **tokens, BIT_FLAGS mode)
 {
-       int i = 0;
+       s16b i = 0;
 
        char *s = buf;
 
@@ -202,27 +202,27 @@ static named_num gf_desc[] =
        {"GF_ACID",                             GF_ACID                         },
        {"GF_COLD",                             GF_COLD                         },
        {"GF_FIRE",                                     GF_FIRE                         },
-       {"GF_PSY_SPEAR",                        GF_PSY_SPEAR                    },
+       {"GF_PSY_SPEAR",                        GF_PSY_SPEAR            },
        {"GF_MISSILE",                          GF_MISSILE                      },
-       {"GF_ARROW",                            GF_ARROW                                },
+       {"GF_ARROW",                            GF_ARROW                        },
        {"GF_PLASMA",                           GF_PLASMA                       },
-       {"GF_WATER",                            GF_WATER                                },
+       {"GF_WATER",                            GF_WATER                        },
        {"GF_LITE",                                     GF_LITE                         },
        {"GF_DARK",                                     GF_DARK                         },
        {"GF_LITE_WEAK",                        GF_LITE_WEAK            },
        {"GF_DARK_WEAK",                        GF_DARK_WEAK            },
        {"GF_SHARDS",                           GF_SHARDS                       },
-       {"GF_SOUND",                            GF_SOUND                                },
+       {"GF_SOUND",                            GF_SOUND                        },
        {"GF_CONFUSION",                        GF_CONFUSION            },
-       {"GF_FORCE",                            GF_FORCE                                },
+       {"GF_FORCE",                            GF_FORCE                        },
        {"GF_INERTIA",                          GF_INERTIAL                     },
        {"GF_MANA",                                     GF_MANA                         },
        {"GF_METEOR",                           GF_METEOR                       },
        {"GF_ICE",                                      GF_ICE                          },
-       {"GF_CHAOS",                            GF_CHAOS                                },
+       {"GF_CHAOS",                            GF_CHAOS                        },
        {"GF_NETHER",                           GF_NETHER                       },
        {"GF_DISENCHANT",                       GF_DISENCHANT           },
-       {"GF_NEXUS",                            GF_NEXUS                                },
+       {"GF_NEXUS",                            GF_NEXUS                        },
        {"GF_TIME",                                     GF_TIME                         },
        {"GF_GRAVITY",                          GF_GRAVITY                      },
        {"GF_KILL_WALL",                        GF_KILL_WALL            },
@@ -233,24 +233,24 @@ static named_num gf_desc[] =
        {"GF_MAKE_TRAP",                        GF_MAKE_TRAP            },
        {"GF_MAKE_TREE",                        GF_MAKE_TREE            },
        {"GF_OLD_CLONE",                        GF_OLD_CLONE            },
-       {"GF_OLD_POLY",                 GF_OLD_POLY                     },
-       {"GF_OLD_HEAL",                 GF_OLD_HEAL                     },
+       {"GF_OLD_POLY",                         GF_OLD_POLY                     },
+       {"GF_OLD_HEAL",                         GF_OLD_HEAL                     },
        {"GF_OLD_SPEED",                        GF_OLD_SPEED            },
-       {"GF_OLD_SLOW",                 GF_OLD_SLOW                     },
-       {"GF_OLD_CONF",                 GF_OLD_CONF                     },
+       {"GF_OLD_SLOW",                         GF_OLD_SLOW                     },
+       {"GF_OLD_CONF",                         GF_OLD_CONF                     },
        {"GF_OLD_SLEEP",                        GF_OLD_SLEEP            },
-       {"GF_OLD_DRAIN",                        GF_OLD_DRAIN            },
-       {"GF_AWAY_UNDEAD",              GF_AWAY_UNDEAD          },
+       {"GF_HYPODYNAMIA",                      GF_HYPODYNAMIA          },
+       {"GF_AWAY_UNDEAD",                      GF_AWAY_UNDEAD          },
        {"GF_AWAY_EVIL",                        GF_AWAY_EVIL            },
-       {"GF_AWAY_ALL",                 GF_AWAY_ALL                     },
-       {"GF_TURN_UNDEAD",              GF_TURN_UNDEAD          },
+       {"GF_AWAY_ALL",                         GF_AWAY_ALL                     },
+       {"GF_TURN_UNDEAD",                      GF_TURN_UNDEAD          },
        {"GF_TURN_EVIL",                        GF_TURN_EVIL            },
-       {"GF_TURN_ALL",                 GF_TURN_ALL                     },
-       {"GF_DISP_UNDEAD",              GF_DISP_UNDEAD          },
+       {"GF_TURN_ALL",                         GF_TURN_ALL                     },
+       {"GF_DISP_UNDEAD",                      GF_DISP_UNDEAD          },
        {"GF_DISP_EVIL",                        GF_DISP_EVIL            },
-       {"GF_DISP_ALL",                 GF_DISP_ALL                     },
+       {"GF_DISP_ALL",                         GF_DISP_ALL                     },
        {"GF_DISP_DEMON",                       GF_DISP_DEMON           },
-       {"GF_DISP_LIVING",              GF_DISP_LIVING          },
+       {"GF_DISP_LIVING",                      GF_DISP_LIVING          },
        {"GF_ROCKET",                           GF_ROCKET                       },
        {"GF_NUKE",                                     GF_NUKE                         },
        {"GF_MAKE_GLYPH",                       GF_MAKE_GLYPH           },
@@ -260,43 +260,43 @@ static named_num gf_desc[] =
        {"GF_STUN",                                     GF_STUN                         },
        {"GF_HOLY_FIRE",                        GF_HOLY_FIRE            },
        {"GF_HELL_FIRE",                        GF_HELL_FIRE            },
-       {"GF_DISINTEGRATE",             GF_DISINTEGRATE },
-       {"GF_CHARM",                            GF_CHARM                                },
-       {"GF_CONTROL_UNDEAD",   GF_CONTROL_UNDEAD       },
-       {"GF_CONTROL_ANIMAL",   GF_CONTROL_ANIMAL       },
+       {"GF_DISINTEGRATE",                     GF_DISINTEGRATE         },
+       {"GF_CHARM",                            GF_CHARM                        },
+       {"GF_CONTROL_UNDEAD",           GF_CONTROL_UNDEAD       },
+       {"GF_CONTROL_ANIMAL",           GF_CONTROL_ANIMAL       },
        {"GF_PSI",                                      GF_PSI                          },
        {"GF_PSI_DRAIN",                        GF_PSI_DRAIN            },
-       {"GF_TELEKINESIS",              GF_TELEKINESIS          },
-       {"GF_JAM_DOOR",                 GF_JAM_DOOR                     },
+       {"GF_TELEKINESIS",                      GF_TELEKINESIS          },
+       {"GF_JAM_DOOR",                         GF_JAM_DOOR                     },
        {"GF_DOMINATION",                       GF_DOMINATION           },
        {"GF_DISP_GOOD",                        GF_DISP_GOOD            },
        {"GF_DRAIN_MANA",                       GF_DRAIN_MANA           },
        {"GF_MIND_BLAST",                       GF_MIND_BLAST           },
        {"GF_BRAIN_SMASH",                      GF_BRAIN_SMASH          },
-       {"GF_CAUSE_1",                  GF_CAUSE_1              },
-       {"GF_CAUSE_2",                  GF_CAUSE_2              },
-       {"GF_CAUSE_3",                  GF_CAUSE_3              },
-       {"GF_CAUSE_4",                  GF_CAUSE_4              },
+       {"GF_CAUSE_1",                          GF_CAUSE_1                      },
+       {"GF_CAUSE_2",                          GF_CAUSE_2                      },
+       {"GF_CAUSE_3",                          GF_CAUSE_3                      },
+       {"GF_CAUSE_4",                          GF_CAUSE_4                      },
        {"GF_HAND_DOOM",                        GF_HAND_DOOM            },
-       {"GF_CAPTURE",                  GF_CAPTURE              },
+       {"GF_CAPTURE",                          GF_CAPTURE                      },
        {"GF_ANIM_DEAD",                        GF_ANIM_DEAD            },
-       {"GF_CONTROL_LIVING",           GF_CONTROL_LIVING       },
-       {"GF_IDENTIFY",                 GF_IDENTIFY     },
-       {"GF_ATTACK",                   GF_ATTACK       },
-       {"GF_ENGETSU",                  GF_ENGETSU      },
-       {"GF_GENOCIDE",                 GF_GENOCIDE     },
-       {"GF_PHOTO",                    GF_PHOTO        },
-       {"GF_CONTROL_DEMON",    GF_CONTROL_DEMON        },
-       {"GF_LAVA_FLOW",        GF_LAVA_FLOW    },
-       {"GF_BLOOD_CURSE",      GF_BLOOD_CURSE  },
-       {"GF_SEEKER",                   GF_SEEKER                       },
-       {"GF_SUPER_RAY",                GF_SUPER_RAY                    },
-       {"GF_STAR_HEAL",                GF_STAR_HEAL                    },
-       {"GF_WATER_FLOW",               GF_WATER_FLOW                   },
-       {"GF_CRUSADE",          GF_CRUSADE                      },
+       {"GF_CHARM_LIVING",                     GF_CHARM_LIVING         },
+       {"GF_IDENTIFY",                         GF_IDENTIFY                     },
+       {"GF_ATTACK",                           GF_ATTACK                       },
+       {"GF_ENGETSU",                          GF_ENGETSU                      },
+       {"GF_GENOCIDE",                         GF_GENOCIDE                     },
+       {"GF_PHOTO",                            GF_PHOTO                        },
+       {"GF_CONTROL_DEMON",            GF_CONTROL_DEMON        },
+       {"GF_LAVA_FLOW",                        GF_LAVA_FLOW            },
+       {"GF_BLOOD_CURSE",                      GF_BLOOD_CURSE          },
+       {"GF_SEEKER",                           GF_SEEKER                       },
+       {"GF_SUPER_RAY",                        GF_SUPER_RAY            },
+       {"GF_STAR_HEAL",                        GF_STAR_HEAL            },
+       {"GF_WATER_FLOW",                       GF_WATER_FLOW           },
+       {"GF_CRUSADE",                          GF_CRUSADE                      },
        {"GF_STASIS_EVIL",                      GF_STASIS_EVIL          },
-       {"GF_WOUNDS",                   GF_WOUNDS               },
-       {NULL,                                          0                                               }
+       {"GF_WOUNDS",                           GF_WOUNDS                       },
+       {NULL,                                          0                                       }
 };
 
 
@@ -355,7 +355,10 @@ static named_num gf_desc[] =
  */
 errr process_pref_file_command(char *buf)
 {
-       int i, j, n1, n2;
+       int i, j;
+       SYMBOL_COLOR n1;
+       SYMBOL_CODE n2;
+
 
        char *zz[16];
 
@@ -378,8 +381,8 @@ errr process_pref_file_command(char *buf)
                        {
                                monster_race *r_ptr;
                                i = (huge)strtol(zz[0], NULL, 0);
-                               n1 = strtol(zz[1], NULL, 0);
-                               n2 = strtol(zz[2], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+                               n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
                                if (i >= max_r_idx) return 1;
                                r_ptr = &r_info[i];
                                if (n1 || (!(n2 & 0x80) && n2)) r_ptr->x_attr = n1; /* Allow TERM_DARK text */
@@ -394,8 +397,8 @@ errr process_pref_file_command(char *buf)
                        {
                                object_kind *k_ptr;
                                i = (huge)strtol(zz[0], NULL, 0);
-                               n1 = strtol(zz[1], NULL, 0);
-                               n2 = strtol(zz[2], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+                               n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
                                if (i >= max_k_idx) return 1;
                                k_ptr = &k_info[i];
                                if (n1 || (!(n2 & 0x80) && n2)) k_ptr->x_attr = n1; /* Allow TERM_DARK text */
@@ -420,8 +423,8 @@ errr process_pref_file_command(char *buf)
                                if (i >= max_f_idx) return 1;
                                f_ptr = &f_info[i];
 
-                               n1 = strtol(zz[1], NULL, 0);
-                               n2 = strtol(zz[2], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+                               n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
                                if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[F_LIT_STANDARD] = n1; /* Allow TERM_DARK text */
                                if (n2) f_ptr->x_char[F_LIT_STANDARD] = n2;
 
@@ -448,8 +451,8 @@ errr process_pref_file_command(char *buf)
                                case F_LIT_MAX * 2 + 1:
                                        for (j = F_LIT_NS_BEGIN; j < F_LIT_MAX; j++)
                                        {
-                                               n1 = strtol(zz[j * 2 + 1], NULL, 0);
-                                               n2 = strtol(zz[j * 2 + 2], NULL, 0);
+                                               n1 = (SYMBOL_COLOR)strtol(zz[j * 2 + 1], NULL, 0);
+                                               n2 = (SYMBOL_CODE)strtol(zz[j * 2 + 2], NULL, 0);
                                                if (n1 || (!(n2 & 0x80) && n2)) f_ptr->x_attr[j] = n1; /* Allow TERM_DARK text */
                                                if (n2) f_ptr->x_char[j] = n2;
                                        }
@@ -463,8 +466,8 @@ errr process_pref_file_command(char *buf)
                        if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
                        {
                                j = (byte)strtol(zz[0], NULL, 0);
-                               n1 = strtol(zz[1], NULL, 0);
-                               n2 = strtol(zz[2], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+                               n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
                                misc_to_attr[j] = n1;
                                misc_to_char[j] = n2;
                                return 0;
@@ -476,8 +479,8 @@ errr process_pref_file_command(char *buf)
                        if (tokenize(buf+2, 3, zz, TOKENIZE_CHECKQUOTE) == 3)
                        {
                                j = (huge)strtol(zz[0], NULL, 0);
-                               n1 = strtol(zz[1], NULL, 0);
-                               n2 = strtol(zz[2], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
+                               n2 = (SYMBOL_CODE)strtol(zz[2], NULL, 0);
                                for (i = 1; i < max_k_idx; i++)
                                {
                                        object_kind *k_ptr = &k_info[i];
@@ -496,7 +499,7 @@ errr process_pref_file_command(char *buf)
                        if (tokenize(buf+2, 2, zz, TOKENIZE_CHECKQUOTE) == 2)
                        {
                                j = (byte)strtol(zz[0], NULL, 0) % 128;
-                               n1 = strtol(zz[1], NULL, 0);
+                               n1 = (SYMBOL_COLOR)strtol(zz[1], NULL, 0);
                                if (n1) tval_to_attr[j] = n1;
                                return 0;
                        }
@@ -763,7 +766,7 @@ cptr process_pref_file_expr(char **sp, char *fp)
        char b2 = ']';
 
        char f = ' ';
-       static char tmp[10];
+       static char tmp[16];
 
        /* Initial */
        s = (*sp);
@@ -2027,7 +2030,7 @@ static void display_player_various(void)
        /* If the player is wielding one? */
        if (o_ptr->k_idx)
        {
-               s16b energy_fire = bow_energy(o_ptr->sval);
+               ENERGY energy_fire = bow_energy(o_ptr->sval);
 
                /* Calculate shots per round */
                shots = p_ptr->num_fire * 100;
@@ -3780,7 +3783,7 @@ c_put_str(TERM_YELLOW, "現在", row, stat_col+35);
  * Mode 4 = mutations
  * </pre>
  */
-void display_player(int mode)
+void display_player(BIT_FLAGS mode)
 {
        int i;
 
@@ -4326,8 +4329,11 @@ static void dump_aux_class_special(FILE *fff)
        else if (p_ptr->pclass == CLASS_MAGIC_EATER)
        {
                char s[EATER_EXT][MAX_NLEN];
-               int tval, ext, k_idx;
-               int i, magic_num;
+               OBJECT_TYPE_VALUE tval;
+               int ext;
+               IDX k_idx;
+               OBJECT_SUBTYPE_VALUE i;
+               int magic_num;
 
                fprintf(fff, _("\n\n  [取り込んだ魔法道具]\n", "\n\n  [Magic devices eaten]\n"));
 
@@ -4403,9 +4409,9 @@ static void dump_aux_class_special(FILE *fff)
                for (i = 0; i < row; i++)
                {
                        fprintf(fff, "\n");
-                       fprintf(fff, "%-11s %5d     ", essence_name[id[i]], p_ptr->magic_num1[id[i]]);
-                       if(i + row < n) fprintf(fff, "%-11s %5d     ", essence_name[id[i + row]], p_ptr->magic_num1[id[i + row]]);
-                       if(i + row * 2 < n) fprintf(fff, "%-11s %5d", essence_name[id[i + row * 2]], p_ptr->magic_num1[id[i + row * 2]]);
+                       fprintf(fff, "%-11s %5d     ", essence_name[id[i]], (int)p_ptr->magic_num1[id[i]]);
+                       if(i + row < n) fprintf(fff, "%-11s %5d     ", essence_name[id[i + row]], (int)p_ptr->magic_num1[id[i + row]]);
+                       if(i + row * 2 < n) fprintf(fff, "%-11s %5d", essence_name[id[i + row * 2]], (int)p_ptr->magic_num1[id[i + row * 2]]);
                }
 
                fputs("\n", fff);
@@ -4421,20 +4427,20 @@ static void dump_aux_class_special(FILE *fff)
  */
 static void dump_aux_quest(FILE *fff)
 {
-       int i;
-       int *quest_num;
+       IDX i;
+       IDX *quest_num;
        int dummy;
 
        fprintf(fff, _("\n\n  [クエスト情報]\n", "\n\n  [Quest Information]\n"));
 
        /* Allocate Memory */
-       C_MAKE(quest_num, max_quests, int);
+       C_MAKE(quest_num, max_q_idx, IDX);
 
        /* Sort by compete level */
-       for (i = 1; i < max_quests; i++) quest_num[i] = i;
+       for (i = 1; i < max_q_idx; i++) quest_num[i] = i;
        ang_sort_comp = ang_sort_comp_quest_num;
        ang_sort_swap = ang_sort_swap_quest_num;
-       ang_sort(quest_num, &dummy, max_quests);
+       ang_sort(quest_num, &dummy, max_q_idx);
 
        /* Dump Quest Information */
        fputc('\n', fff);
@@ -4444,7 +4450,7 @@ static void dump_aux_quest(FILE *fff)
        fputc('\n', fff);
 
        /* Free Memory */
-       C_KILL(quest_num, max_quests, int);
+       C_KILL(quest_num, max_q_idx, IDX);
 }
 
 
@@ -4624,10 +4630,10 @@ static void dump_aux_monsters(FILE *fff)
 {
        /* Monsters slain */
 
-       int k;
+       IDX k;
        long uniq_total = 0;
        long norm_total = 0;
-       s16b *who;
+       IDX *who;
 
        /* Sort by monster level */
        u16b why = 2;
@@ -5188,7 +5194,7 @@ static void show_file_aux_line(cptr str, int cy, cptr shower)
  * Return FALSE on 'q' to exit from a deep, otherwise TRUE.
  * </pre>
  */
-bool show_file(bool show_version, cptr name, cptr what, int line, int mode)
+bool show_file(bool show_version, cptr name, cptr what, int line, BIT_FLAGS mode)
 {
        int i, n, skey;
 
@@ -6121,7 +6127,7 @@ void do_cmd_save_game(int is_autosave)
        (void)strcpy(p_ptr->died_from, _("(元気に生きている)", "(alive and well)"));
 
        /* HACK -- don't get sanity blast on updating view */
-       hack_mind = FALSE;
+       is_loading_now = FALSE;
 
        /* Update stuff */
        update_stuff();
@@ -6130,7 +6136,7 @@ void do_cmd_save_game(int is_autosave)
        mproc_init();
 
        /* HACK -- reset the hackish flag */
-       hack_mind = TRUE;
+       is_loading_now = TRUE;
 }
 
 
@@ -6159,7 +6165,7 @@ void do_cmd_save_and_exit(void)
 long total_points(void)
 {
        int i, mult = 100;
-       s16b max_dl = 0;
+       DEPTH max_dl = 0;
        u32b point, point_h, point_l;
        int arena_win = MIN(p_ptr->arena_number, MAX_ARENA_MONS);