OSDN Git Service

#37287 #37353 (2.2.0.89) HIT_POINTをs32bに再定義、型の置換を継続中。 / Redefine HIT_POINT to s32b...
authorDeskull <desull@users.sourceforge.jp>
Sun, 24 Sep 2017 03:00:28 +0000 (12:00 +0900)
committerDeskull <desull@users.sourceforge.jp>
Sun, 24 Sep 2017 03:00:28 +0000 (12:00 +0900)
src/h-type.h
src/load.c
src/save.c
src/types.h

index 8aed951..5055f91 100644 (file)
@@ -106,7 +106,8 @@ typedef unsigned long u32b;
 
 typedef s16b IDX;                      /*!< ゲーム中のID型を定義 */
 typedef s32b POSITION;         /*!< ゲーム中の座標型を定義 */
-typedef s16b HIT_POINT;                /*!< ゲーム中のHP/ダメージ型を定義 */
+typedef s32b HIT_POINT;                /*!< ゲーム中のHP/ダメージ型を定義 */
+typedef s32b MANA_POINT;       /*!< ゲーム中のMP型を定義 */
 typedef s16b HIT_PROB;         /*!< ゲーム中の命中修正値を定義 */
 typedef s16b BASE_STATUS;      /*!< ゲーム中の基礎能力値型を定義 */
 typedef byte ITEM_NUMBER;      /*!< ゲーム中のアイテム数型を定義 */
index ea3fee0..373fdcd 100644 (file)
@@ -339,6 +339,7 @@ static void rd_item_old(object_type *o_ptr)
 {
        char buf[128];
        byte_hack tmp8u;
+       s16b tmp16s;
 
 
        /* Kind */
@@ -373,7 +374,9 @@ static void rd_item_old(object_type *o_ptr)
        rd_s16b(&o_ptr->timeout);
 
        rd_s16b(&o_ptr->to_h);
-       rd_s16b(&o_ptr->to_d);
+       
+       rd_s16b(&tmp16s);
+       o_ptr->to_d = tmp16s;
        rd_s16b(&o_ptr->to_a);
 
        rd_s16b(&o_ptr->ac);
@@ -597,6 +600,7 @@ static void rd_item(object_type *o_ptr)
        u32b flags;
        char buf[128];
        byte_hack tmp8u;
+       s16b tmp16s;
 
        if (h_older_than(1, 5, 0, 0))
        {
@@ -642,7 +646,11 @@ static void rd_item(object_type *o_ptr)
 
        if (flags & SAVE_ITEM_TO_H) rd_s16b(&o_ptr->to_h);
        else o_ptr->to_h = 0;
-       if (flags & SAVE_ITEM_TO_D) rd_s16b(&o_ptr->to_d);
+       if (flags & SAVE_ITEM_TO_D)
+       {
+               rd_s16b(&tmp16s);
+               o_ptr->to_d = tmp16s;
+       }
        else o_ptr->to_d = 0;
        if (flags & SAVE_ITEM_TO_A) rd_s16b(&o_ptr->to_a);
        else o_ptr->to_a = 0;
@@ -779,6 +787,7 @@ static void rd_item(object_type *o_ptr)
 static void rd_monster_old(monster_type *m_ptr)
 {
        byte tmp8u;
+       s16b tmp16s;
        char buf[128];
 
        /* Read the monster race */
@@ -806,15 +815,19 @@ static void rd_monster_old(monster_type *m_ptr)
        rd_byte(&tmp8u);
        m_ptr->fx = (POSITION)tmp8u;
 
-       rd_s16b(&m_ptr->hp);
-       rd_s16b(&m_ptr->maxhp);
+       rd_s16b(&tmp16s);
+       m_ptr->hp = tmp16s;
+       rd_s16b(&tmp16s);
+       m_ptr->maxhp = tmp16s;
+
        if (z_older_than(11, 0, 5))
        {
                m_ptr->max_maxhp = m_ptr->maxhp;
        }
        else
        {
-               rd_s16b(&m_ptr->max_maxhp);
+               rd_s16b(&tmp16s);
+               m_ptr->max_maxhp = (HIT_POINT)tmp16s;
        }
        if(h_older_than(2, 1, 2, 1))
        {
@@ -862,14 +875,15 @@ static void rd_monster_old(monster_type *m_ptr)
        }
        else if (z_older_than(10,0,11))
        {
-               s16b tmp16s;
                rd_s16b(&tmp16s);
                reset_target(m_ptr);
        }
        else
        {
-               rd_s16b(&m_ptr->target_y);
-               rd_s16b(&m_ptr->target_x);
+               rd_s16b(&tmp16s);
+               m_ptr->target_y = (POSITION)tmp16s;
+               rd_s16b(&tmp16s);
+               m_ptr->target_x = (POSITION)tmp16s;
        }
 
        rd_byte(&tmp8u);
@@ -928,6 +942,7 @@ static void rd_monster(monster_type *m_ptr)
        u32b flags;
        char buf[128];
        byte tmp8u;
+       s16b tmp16s;
 
        if (h_older_than(1, 5, 0, 0))
        {
@@ -949,9 +964,13 @@ static void rd_monster(monster_type *m_ptr)
        rd_byte(&tmp8u);
        m_ptr->fx = (POSITION)tmp8u;
 
-       rd_s16b(&m_ptr->hp);
-       rd_s16b(&m_ptr->maxhp);
-       rd_s16b(&m_ptr->max_maxhp);
+       rd_s16b(&tmp16s);
+       m_ptr->hp = (HIT_POINT)tmp16s;
+       rd_s16b(&tmp16s);
+       m_ptr->maxhp = (HIT_POINT)tmp16s;
+       rd_s16b(&tmp16s);
+       m_ptr->max_maxhp = (HIT_POINT)tmp16s;
+
        if(h_older_than(2, 1, 2, 1))
        {
                m_ptr->dealt_damage = 0;
@@ -1006,9 +1025,17 @@ static void rd_monster(monster_type *m_ptr)
        }
        else m_ptr->mtimed[MTIMED_MONFEAR] = 0;
 
-       if (flags & SAVE_MON_TARGET_Y) rd_s16b(&m_ptr->target_y);
+       if (flags & SAVE_MON_TARGET_Y)
+       {
+               rd_s16b(&tmp16s);
+               m_ptr->target_y = (POSITION)tmp16s;
+       }
        else m_ptr->target_y = 0;
-       if (flags & SAVE_MON_TARGET_X) rd_s16b(&m_ptr->target_x);
+       if (flags & SAVE_MON_TARGET_X)
+       {
+               rd_s16b(&tmp16s);
+               m_ptr->target_x = (POSITION)tmp16s;
+       }
        else m_ptr->target_x = 0;
 
        if (flags & SAVE_MON_INVULNER)
@@ -1675,7 +1702,8 @@ static void rd_extra(void)
        }
 
        /* Special Race/Class info */
-       rd_byte(&p_ptr->hitdie);
+       rd_byte(&tmp8u);
+       p_ptr->hitdie = tmp8u;
        rd_u16b(&p_ptr->expfact);
 
        /* Age/Height/Weight */
index 3effe20..528b97d 100644 (file)
@@ -180,7 +180,7 @@ static void wr_item(object_type *o_ptr)
        if (flags & SAVE_ITEM_TIMEOUT) wr_s16b(o_ptr->timeout);
 
        if (flags & SAVE_ITEM_TO_H) wr_s16b(o_ptr->to_h);
-       if (flags & SAVE_ITEM_TO_D) wr_s16b(o_ptr->to_d);
+       if (flags & SAVE_ITEM_TO_D) wr_s16b((s16b)o_ptr->to_d);
        if (flags & SAVE_ITEM_TO_A) wr_s16b(o_ptr->to_a);
        if (flags & SAVE_ITEM_AC) wr_s16b(o_ptr->ac);
        if (flags & SAVE_ITEM_DD) wr_byte(o_ptr->dd);
@@ -250,9 +250,9 @@ static void wr_monster(monster_type *m_ptr)
        wr_s16b(m_ptr->r_idx);
        wr_byte((byte_hack)m_ptr->fy);
        wr_byte((byte_hack)m_ptr->fx);
-       wr_s16b(m_ptr->hp);
-       wr_s16b(m_ptr->maxhp);
-       wr_s16b(m_ptr->max_maxhp);
+       wr_s16b((s16b)m_ptr->hp);
+       wr_s16b((s16b)m_ptr->maxhp);
+       wr_s16b((s16b)m_ptr->max_maxhp);
        wr_u32b(m_ptr->dealt_damage);
        
 
@@ -290,8 +290,8 @@ static void wr_monster(monster_type *m_ptr)
                tmp8u = (byte)m_ptr->mtimed[MTIMED_MONFEAR];
                wr_byte(tmp8u);
        }
-       if (flags & SAVE_MON_TARGET_Y) wr_s16b(m_ptr->target_y);
-       if (flags & SAVE_MON_TARGET_X) wr_s16b(m_ptr->target_x);
+       if (flags & SAVE_MON_TARGET_Y) wr_s16b((s16b)m_ptr->target_y);
+       if (flags & SAVE_MON_TARGET_X) wr_s16b((s16b)m_ptr->target_x);
        if (flags & SAVE_MON_INVULNER)
        {
                tmp8u = (byte)m_ptr->mtimed[MTIMED_INVULNER];
@@ -630,7 +630,7 @@ static void wr_extra(void)
        wr_byte(p_ptr->realm2);
        wr_byte(0);     /* oops */
 
-       wr_byte(p_ptr->hitdie);
+       wr_byte((byte)p_ptr->hitdie);
        wr_u16b(p_ptr->expfact);
 
        wr_s16b(p_ptr->age);
index a1c5bd8..f6d5532 100644 (file)
@@ -994,16 +994,16 @@ struct player_type
        IDX inside_quest;               /* Inside quest level */
        bool inside_battle;             /* Is character inside tougijou? */
 
-       s32b wilderness_x;      /* Coordinates in the wilderness */
-       s32b wilderness_y;
+       POSITION wilderness_x;  /* Coordinates in the wilderness */
+       POSITION wilderness_y;
        bool wild_mode;
 
-       s32b mhp;                       /* Max hit pts */
-       s32b chp;                       /* Cur hit pts */
+       HIT_POINT mhp;                  /* Max hit pts */
+       HIT_POINT chp;                  /* Cur hit pts */
        u32b chp_frac;          /* Cur hit frac (times 2^16) */
 
-       s32b msp;                       /* Max mana pts */
-       s32b csp;                       /* Cur mana pts */
+       MANA_POINT msp;                 /* Max mana pts */
+       MANA_POINT csp;                 /* Cur mana pts */
        u32b csp_frac;          /* Cur mana frac (times 2^16) */
 
        s16b max_plv;           /* Max Player Level */