extern bool object_sort_comp(object_type *o_ptr, s32b o_value, object_type *j_ptr);
extern s16b inven_carry(object_type *o_ptr);
extern INVENTORY_IDX inven_takeoff(INVENTORY_IDX item, ITEM_NUMBER amt);
-extern void inven_drop(int item, int amt);
+extern void inven_drop(INVENTORY_IDX item, ITEM_NUMBER amt);
extern void combine_pack(void);
extern void reorder_pack(void);
extern void display_koff(IDX k_idx);
typedef s32b POSITION; /*!< ゲーム中の座標型を定義 */
+typedef s32b ALIGNMENT; /*!< 善悪属性の型定義 */
+
/*!
* @var typedef s32b HIT_POINT
* @brief HPとその増減量の型定義
typedef s32b OBJECT_TYPE_VALUE; /*!< ゲーム中のアイテム主分類の型定義 */
typedef s32b OBJECT_SUBTYPE_VALUE; /*!< ゲーム中のアイテム副分類の型定義 */
typedef s16b PARAMETER_VALUE; /*!< ゲーム中のアイテム能力値の型定義 */
-typedef s16b WEIGHT; /*!< ゲーム中の重量の型定義(ポンド) */
+typedef s32b WEIGHT; /*!< ゲーム中の重量の型定義(ポンド) */
typedef int DICE_NUMBER; /*!< ゲーム中のダイス数の型定義 */
typedef int DICE_SID; /*!< ゲーム中のダイス面の型定義 */
}
/* Oops */
- else return (6);
+ else return (6);
/* Success */
return (0);
rd_byte(&o_ptr->discount);
rd_byte(&tmp8u);
o_ptr->number = (ITEM_NUMBER)tmp8u;
- rd_s16b(&o_ptr->weight);
+
+ rd_s16b(&tmp16s);
+ o_ptr->weight = tmp16s;
rd_byte(&tmp8u);
o_ptr->name1 = tmp8u;
}
else o_ptr->number = 1;
- rd_s16b(&o_ptr->weight);
+ rd_s16b(&tmp16s);
+ o_ptr->weight = tmp16s;
if (flags & SAVE_ITEM_NAME1)
{
* @details
* The object will be dropped "near" the current location
*/
-void inven_drop(int item, int amt)
+void inven_drop(INVENTORY_IDX item, ITEM_NUMBER amt)
{
object_type forge;
object_type *q_ptr;
-
object_type *o_ptr;
char o_name[MAX_NLEN];
bool observe = FALSE;
int old_ds, old_dd, old_to_h, old_to_d, old_ac, old_to_a, old_pval, old_name2;
TIME_EFFECT old_timeout;
- u32b old_flgs[TR_FLAG_SIZE], new_flgs[TR_FLAG_SIZE];
+ BIT_FLAGS old_flgs[TR_FLAG_SIZE], new_flgs[TR_FLAG_SIZE];
object_type *o_ptr;
cptr q, s;
POSITION iy, ix;
byte_hack marked;
ITEM_NUMBER number;
- s16b next_o_idx, weight;
+ OBJECT_IDX next_o_idx;
+ WEIGHT weight;
for (i = 0; i < sizeof(drain_value) / sizeof(int); i++)
drain_value[i] = 0;
if (flags & SAVE_ITEM_DISCOUNT) wr_byte(o_ptr->discount);
if (flags & SAVE_ITEM_NUMBER) wr_byte((byte_hack)o_ptr->number);
- wr_s16b(o_ptr->weight);
+ wr_s16b((s16b)o_ptr->weight);
if (flags & SAVE_ITEM_NAME1) wr_byte((byte_hack)o_ptr->name1);
if (flags & SAVE_ITEM_NAME2) wr_byte((byte_hack)o_ptr->name2);
bool sutemi;
bool counter;
- s32b align; /* Good/evil/neutral */
+ ALIGNMENT align; /* Good/evil/neutral */
POSITION run_py;
POSITION run_px;
/*** Extracted fields ***/
- u32b total_weight; /* Total weight being carried */
+ WEIGHT total_weight; /*!< 所持品と装備品の計算総重量 / Total weight being carried */
s16b stat_add[6]; /* Modifiers to stat values */
s16b stat_ind[6]; /* Indexes into stat tables */
s16b num_fire; /* Number of shots */
byte tval_xtra; /* Correct xtra tval */
-
byte tval_ammo; /* Correct ammo tval */
byte pspeed; /* Current speed */
s16b wt;
s16b sc;
- s32b au;
+ PRICE au; /*!< 初期の所持金 */
BASE_STATUS stat_max[6]; /* Current "maximal" stat values */
BASE_STATUS stat_max_max[6]; /* Maximal "maximal" stat values */
HIT_POINT player_hp[PY_MAX_LEVEL];
- s16b chaos_patron;
+ PATRON_IDX chaos_patron;
s16b vir_types[8];
/* Weight */
- sprintf(wgt, "%3d.%d", q_ptr->weight / 10, q_ptr->weight % 10);
+ sprintf(wgt, "%3d.%d", (int)(q_ptr->weight / 10), (int)(q_ptr->weight % 10));
}
*/
bool heavy_armor(void)
{
- u16b monk_arm_wgt = 0;
+ WEIGHT monk_arm_wgt = 0;
if ((p_ptr->pclass != CLASS_MONK) && (p_ptr->pclass != CLASS_FORCETRAINER) && (p_ptr->pclass != CLASS_NINJA)) return FALSE;