OSDN Git Service

Merge branch 'master' of git.sourceforge.jp:/gitroot/hengband/hengband
authorDeskull <deskull@users.sourceforge.jp>
Sat, 21 Apr 2018 00:00:07 +0000 (09:00 +0900)
committerDeskull <deskull@users.sourceforge.jp>
Sat, 21 Apr 2018 00:00:07 +0000 (09:00 +0900)
19 files changed:
src/cmd4.c
src/cmd5.c
src/effects.c
src/files.c
src/init1.c
src/load.c
src/main-x11.c
src/monster1.c
src/mspells1.c
src/mspells2.c
src/mspells4.c
src/object2.c
src/racial.c
src/scores.c
src/util.c
src/wizard2.c
src/xtra1.c
src/xtra2.c
src/z-rand.c

index 0c2fa7f..0e521e6 100644 (file)
@@ -3151,7 +3151,7 @@ static void do_cmd_knowledge_features(bool *need_redraw, bool visual_only, IDX d
  */
 void do_cmd_visuals(void)
 {
-       char i;
+       int i;
        char tmp[160];
        char buf[1024];
        bool need_redraw = FALSE;
@@ -3392,7 +3392,7 @@ void do_cmd_visuals(void)
                        while (1)
                        {
                                monster_race *r_ptr = &r_info[r];
-                               char c;
+                               int c;
                                IDX t;
 
                                byte da = r_ptr->d_attr;
@@ -3484,7 +3484,7 @@ void do_cmd_visuals(void)
                        while (1)
                        {
                                object_kind *k_ptr = &k_info[k];
-                               char c;
+                               int c;
                                IDX t;
 
                                SYMBOL_COLOR da = k_ptr->d_attr;
@@ -3578,7 +3578,7 @@ void do_cmd_visuals(void)
                        while (1)
                        {
                                feature_type *f_ptr = &f_info[f];
-                               char c;
+                               int c;
                                IDX t;
 
                                byte da = f_ptr->d_attr[lighting_level];
index 11e9b30..42c837f 100644 (file)
@@ -408,7 +408,6 @@ static bool player_has_no_spellbooks(void)
  */
 static void confirm_use_force(bool browse_only)
 {
-       INVENTORY_IDX item;
        char which;
        COMMAND_CODE code;
 
@@ -417,7 +416,6 @@ static void confirm_use_force(bool browse_only)
        /* Get the item index */
        if (repeat_pull(&code) && (code == INVEN_FORCE))
        {
-               item = (INVENTORY_IDX)code;
                browse_only ? do_cmd_mind_browse() : do_cmd_mind();
                return;
        }
index 8d27e31..d8b790b 100644 (file)
@@ -4402,7 +4402,7 @@ int take_hit(int damage_type, HIT_POINT damage, cptr hit_from, int monspell)
        int old_chp = p_ptr->chp;
 
        char death_message[1024];
-       char tmp[80];
+       char tmp[1024];
 
        int warning = (p_ptr->mhp * hitpoint_warn / 10);
 
index 8d6f218..0e17ede 100644 (file)
@@ -766,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);
index 3651e0e..4b4784a 100644 (file)
@@ -503,6 +503,7 @@ static cptr r_a_ability_flags2[] =
        "S_UNIQUE"
 };
 
+#if 0
 /*!
  * モンスター特性トークン(発動型能力3) /
  * Monster race flags
@@ -542,7 +543,9 @@ static cptr r_a_ability_flags3[] =
        "XXXA3X30",
        "XXXA3X31",
 };
+#endif
 
+#if 0
 /*!
  * モンスター特性トークン(発動型能力4) /
  * Monster race flags
@@ -582,6 +585,7 @@ static cptr r_a_ability_flags4[] =
        "XXXA4X30",
        "XXXA4X31",
 };
+#endif
 
 
 /*!
index e24e9d9..76d8e2a 100644 (file)
@@ -926,12 +926,12 @@ static void rd_monster_old(monster_type *m_ptr)
        else
                m_ptr->smart = 0;
 
-       if (z_older_than(10, 4, 5))
+       if (z_older_than(10, 4, 5)) {
                m_ptr->exp = 0;
-       else
-               tmp32u = 0;
+       } else {
                rd_u32b(&tmp32u);
                m_ptr->exp = tmp32u;
+       }
 
        if (z_older_than(10, 2, 2))
        {
index c7f4999..ea659a4 100644 (file)
@@ -1670,8 +1670,11 @@ static errr Infofnt_text_std(int x, int y, cptr str, int len)
                size_t inlen = len;
                size_t outlen = len * 2;
                char *kanji = malloc(outlen);
-               char *sp = str; char *kp = kanji;
-               size_t n = iconv(cd, &sp, &inlen, &kp, &outlen);
+               char *sp; char *kp = kanji;
+               char sbuf[1024];
+               my_strcpy(sbuf, str, sizeof(sbuf));
+               sp = sbuf;
+               iconv(cd, &sp, &inlen, &kp, &outlen);
                iconv_close(cd);
 
                XmbDrawImageString(Metadpy->dpy, Infowin->win, Infofnt->info,
index d6ca6ea..d7bd8a5 100644 (file)
@@ -2048,7 +2048,7 @@ void roff_top(MONRACE_IDX r_idx)
        /* Wizards get extra info */
        if (p_ptr->wizard)
        {
-               char buf[6];
+               char buf[16];
 
                sprintf(buf, "%d", r_idx);
 
index 85e7542..4db609b 100644 (file)
@@ -511,7 +511,7 @@ bool clean_shot(int y1, int x1, int y2, int x2, bool is_friend)
  */
 void bolt(MONSTER_IDX m_idx, int y, int x, int typ, int dam_hp, int monspell, int target_type)
   {
-    BIT_FLAGS flg;
+    BIT_FLAGS flg = 0;
     bool learnable = spell_learnable(m_idx);
 
     switch (target_type)
index 2913919..07b2d5a 100644 (file)
@@ -276,14 +276,11 @@ bool monst_spell_monst(MONSTER_IDX m_idx)
        monster_type *t_ptr = NULL;
 
        monster_race *r_ptr = &r_info[m_ptr->r_idx];
-       monster_race *tr_ptr = NULL;
 
        u32b f4, f5, f6;
 
        bool see_m = is_seen(m_ptr);
        bool maneable = player_has_los_bold(m_ptr->fy, m_ptr->fx);
-       bool see_t;
-       bool see_either;
        bool pet = is_pet(m_ptr);
 
        bool in_no_magic_dungeon = (d_info[dungeon_type].flags1 & DF1_NO_MAGIC) && dun_level
@@ -382,7 +379,6 @@ bool monst_spell_monst(MONSTER_IDX m_idx)
        /* OK -- we've got a target */
        y = t_ptr->fy;
        x = t_ptr->fx;
-       tr_ptr = &r_info[t_ptr->r_idx];
 
        /* Forget old counter attack target */
        reset_target(m_ptr);
@@ -684,9 +680,6 @@ bool monst_spell_monst(MONSTER_IDX m_idx)
        /* Choose a spell to cast */
        thrown_spell = spell[randint0(num)];
 
-       see_t = is_seen(t_ptr);
-       see_either = (see_m || see_t);
-
        if (p_ptr->riding && (m_idx == p_ptr->riding)) disturb(1, 1);
 
        /* Check for spell failure (inate attacks never fail) */
index 0797f9d..86bb885 100644 (file)
@@ -303,7 +303,7 @@ HIT_POINT spell_RF4_SHOOT(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx,i
 */
 HIT_POINT spell_RF4_BREATH(int GF_TYPE, POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE)
 {
-       HIT_POINT dam, ms_type, drs_type;
+       HIT_POINT dam, ms_type, drs_type = 0;
        cptr type_s;
        bool smart_learn_aux = TRUE;
        monster_type    *m_ptr = &m_list[m_idx];
@@ -450,6 +450,11 @@ HIT_POINT spell_RF4_BREATH(int GF_TYPE, POSITION y, POSITION x, MONSTER_IDX m_id
                smart_learn_aux = FALSE;
                break;
        default:
+               /* Do not reach here */
+               dam = 0;
+               type_s = _("不明", "Unknown");
+               ms_type = MS_BR_ACID;
+               smart_learn_aux = FALSE;
                break;
        }
 
@@ -2056,7 +2061,7 @@ HIT_POINT spell_RF6_SPECIAL_ROLENTO(POSITION y, POSITION x, MONSTER_IDX m_idx, I
 */
 HIT_POINT spell_RF6_SPECIAL_B(POSITION y, POSITION x, MONSTER_IDX m_idx, IDX t_idx, int TARGET_TYPE)
 {
-       HIT_POINT dam;
+       HIT_POINT dam = -1;
        monster_type    *m_ptr = &m_list[m_idx];
        monster_type    *t_ptr = &m_list[t_idx];
        monster_race    *tr_ptr = &r_info[t_ptr->r_idx];
index 6584d74..16475bf 100644 (file)
@@ -4777,7 +4777,6 @@ static bool kind_is_good(KIND_OBJECT_IDX k_idx)
 bool make_object(object_type *j_ptr, BIT_FLAGS mode)
 {
        int prob, base;
-       DEPTH obj_level;
 
 
        /* Chance of "special object" */
@@ -4838,9 +4837,6 @@ bool make_object(object_type *j_ptr, BIT_FLAGS mode)
                }
        }
 
-       obj_level = k_info[j_ptr->k_idx].level;
-       if (object_is_fixed_artifact(j_ptr)) obj_level = a_info[j_ptr->name1].level;
-
        if (cheat_peek) object_mention(j_ptr);
 
        /* Success */
@@ -8142,7 +8138,7 @@ static void add_essence(ESSENCE_IDX mode)
        choice = (always_show_list || use_menu) ? ESCAPE:1;
        while (!flag)
        {
-               bool able[22];
+               bool able[22] = {0};
                if( choice==ESCAPE ) choice = ' '; 
                else if( !get_com(out_val, &choice, FALSE) )break; 
 
index 347f65c..f0607f4 100644 (file)
@@ -602,7 +602,7 @@ typedef struct power_desc_type power_desc_type;
  */
 struct power_desc_type
 {
-       char name[40];
+       char name[80];
        PLAYER_LEVEL level;
        int  cost;
        int  stat;
index 4a92db2..715b137 100644 (file)
@@ -504,14 +504,14 @@ errr top_twenty(void)
        /* Save the player info XXX XXX XXX */
        sprintf(the_score.uid, "%7u", player_uid);
        sprintf(the_score.sex, "%c", (p_ptr->psex ? 'm' : 'f'));
-       sprintf(the_score.p_r, "%2d", p_ptr->prace);
-       sprintf(the_score.p_c, "%2d", p_ptr->pclass);
-       sprintf(the_score.p_a, "%2d", p_ptr->pseikaku);
+       sprintf(the_score.p_r, "%2d", MIN(p_ptr->prace, MAX_RACES));
+       sprintf(the_score.p_c, "%2d", MIN(p_ptr->pclass, MAX_CLASS));
+       sprintf(the_score.p_a, "%2d", MIN(p_ptr->pseikaku, MAX_SEIKAKU));
 
        /* Save the level and such */
-       sprintf(the_score.cur_lev, "%3d", p_ptr->lev);
+       sprintf(the_score.cur_lev, "%3d", MIN((u16b)p_ptr->lev, 999));
        sprintf(the_score.cur_dun, "%3d", (int)dun_level);
-       sprintf(the_score.max_lev, "%3d", p_ptr->max_plv);
+       sprintf(the_score.max_lev, "%3d", MIN((u16b)p_ptr->max_plv, 999));
        sprintf(the_score.max_dun, "%3d", (int)max_dlv[dungeon_type]);
 
        /* Save the cause of death (31 chars) */
@@ -617,14 +617,14 @@ errr predict_score(void)
        /* Save the player info XXX XXX XXX */
        sprintf(the_score.uid, "%7u", player_uid);
        sprintf(the_score.sex, "%c", (p_ptr->psex ? 'm' : 'f'));
-       sprintf(the_score.p_r, "%2d", p_ptr->prace);
-       sprintf(the_score.p_c, "%2d", p_ptr->pclass);
-       sprintf(the_score.p_a, "%2d", p_ptr->pseikaku);
+       sprintf(the_score.p_r, "%2d", MIN(p_ptr->prace, MAX_RACES));
+       sprintf(the_score.p_c, "%2d", MIN(p_ptr->pclass, MAX_CLASS));
+       sprintf(the_score.p_a, "%2d", MIN(p_ptr->pseikaku, MAX_SEIKAKU));
 
        /* Save the level and such */
-       sprintf(the_score.cur_lev, "%3d", (int)p_ptr->lev);
+       sprintf(the_score.cur_lev, "%3d", MIN((u16b)p_ptr->lev, 999));
        sprintf(the_score.cur_dun, "%3d", (int)dun_level);
-       sprintf(the_score.max_lev, "%3d", (int)p_ptr->max_plv);
+       sprintf(the_score.max_lev, "%3d", MIN((u16b)p_ptr->max_plv, 999));
        sprintf(the_score.max_dun, "%3d", (int)max_dlv[dungeon_type]);
 
        /* Hack -- no cause of death */
index f4143df..4651323 100644 (file)
@@ -2874,7 +2874,7 @@ void msg_print(cptr msg)
        }
 
        /* New Message Length */
-       n = (buf ? strlen(buf) : 0);
+       n = strlen(buf);
 
        /* Memorize the message */
        if (character_generated) message_add(buf);
index 67e3287..fb5ddcd 100644 (file)
@@ -117,10 +117,10 @@ static bool set_gametime(void)
        char ppp[80], tmp_val[40];
 
        /* Prompt */
-       sprintf(ppp, "Dungeon Turn (0-%ld): ", dungeon_turn_limit);
+       sprintf(ppp, "Dungeon Turn (0-%ld): ", (long)dungeon_turn_limit);
 
        /* Default */
-       sprintf(tmp_val, "%ld", dungeon_turn);
+       sprintf(tmp_val, "%ld", (long)dungeon_turn);
 
        /* Query */
        if (!get_string(ppp, tmp_val, 10)) return (FALSE);
index ae9f434..379b105 100644 (file)
@@ -1113,7 +1113,7 @@ static void prt_state(void)
 {
        byte attr = TERM_WHITE;
 
-       char text[5];
+       char text[16];
 
        /* Repeating */
        if (command_rep)
index 3011542..c092822 100644 (file)
@@ -1588,7 +1588,6 @@ bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note)
        bool        innocent = TRUE, thief = FALSE;
        int         i;
        int         expdam;
-       int                     dealt_damage;
 
        (void)COPY(&exp_mon, m_ptr, monster_type);
        
@@ -1615,9 +1614,6 @@ bool mon_take_hit(MONSTER_IDX m_idx, HIT_POINT dam, bool *fear, cptr note)
        /* Genocided by chaos patron */
        if (!m_idx) return TRUE;
        
-       /* Remember dealt_damage before this attack*/
-       dealt_damage = m_ptr->dealt_damage;
-
        /* Hurt it */
        m_ptr->hp -= dam;
        
index 9ca8786..258aa67 100644 (file)
@@ -192,10 +192,11 @@ void Rand_state_init(void)
 #ifdef RNG_DEVICE
 
        FILE *fp = fopen(RNG_DEVICE, "r");
+       int n;
        
        do {
-               fread(Rand_state, sizeof(Rand_state[0]), 4, fp);
-       } while ((Rand_state[0] | Rand_state[1] | Rand_state[2] | Rand_state[3]) == 0);
+               n = fread(Rand_state, sizeof(Rand_state[0]), 4, fp);
+       } while (n != 4 || (Rand_state[0] | Rand_state[1] | Rand_state[2] | Rand_state[3]) == 0);
        
        fclose(fp);