X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=src%2Fobject.h;h=dc56cf9bbdf66a310bb29605b36bea61d55afeb1;hb=aee45f109c97177c77f7b5924f80d18a5cf01a4e;hp=0eb74b857b212be2bc823fb2df5f701471262de8;hpb=24c45cd85efb34f56c4df1a22b1cac85f12eaf3d;p=hengband%2Fhengband.git diff --git a/src/object.h b/src/object.h index 0eb74b857..dc56cf9bb 100644 --- a/src/object.h +++ b/src/object.h @@ -1,5 +1,4 @@ -#pragma once -#include "defines.h" +#pragma once /* * Object information, for a specific object. @@ -291,17 +290,17 @@ struct object_type /* - * •Ï‹ðver1.5.0ˆÈ‘O‚ÉŽg‚í‚ê‚Ä‚¢‚½ƒAƒCƒeƒ€‚̒ljÁ“Á«ƒtƒ‰ƒO / Hack -- special "xtra" object powers + * 変愚ver1.5.0以前に使われていたアイテムの追加特性フラグ / Hack -- special "xtra" object powers */ - #define EGO_XTRA_SUSTAIN 1 /*!< ‹Œ”ŃAƒCƒeƒ€ƒtƒ‰ƒO(”ñ„§): ’ljÁˆÛŽ”\—Í / Sustain one stat */ - #define EGO_XTRA_POWER 2 /*!< ‹Œ”ŃAƒCƒeƒ€ƒtƒ‰ƒO(”ñ„§): ’ljÁã‹‰‘ϐ« / High resist */ - #define EGO_XTRA_ABILITY 3 /*!< ‹Œ”ŃAƒCƒeƒ€ƒtƒ‰ƒO(”ñ„§): ’ljÁ”\—Í / Special ability */ + #define EGO_XTRA_SUSTAIN 1 /*!< 旧版アイテムフラグ(非推奨): 追加維持能力 / Sustain one stat */ + #define EGO_XTRA_POWER 2 /*!< 旧版アイテムフラグ(非推奨): 追加上級耐性 / High resist */ + #define EGO_XTRA_ABILITY 3 /*!< 旧版アイテムフラグ(非推奨): 追加能力 / Special ability */ XTRA8 xtra1; /* Extra info type (now unused) */ XTRA8 xtra2; /* Extra info activation index */ - XTRA8 xtra3; /* Extra info for weaponsmith */ - XTRA16 xtra4; /*!< ŒõŒ¹‚ÌŽc‚èŽõ–½A‚ ‚é‚¢‚͕߂炦‚½ƒ‚ƒ“ƒXƒ^[‚ÌŒ»HP / Extra info fuel or captured monster's current HP */ - XTRA16 xtra5; /*!< •ß‚炦‚½ƒ‚ƒ“ƒXƒ^[‚̍őåHP / Extra info captured monster's max HP */ + XTRA8 xtra3; /*!< 複数の使用用途 捕らえたモンスターの速度,付加した特殊なエッセンスID / Extra info for weaponsmith */ + XTRA16 xtra4; /*!< 複数の使用用途 光源の残り寿命、あるいは捕らえたモンスターの現HP / Extra info fuel or captured monster's current HP */ + XTRA16 xtra5; /*!< 複数の使用用途 捕らえたモンスターの最大HP / Extra info captured monster's max HP */ HIT_PROB to_h; /* Plusses to hit */ HIT_POINT to_d; /* Plusses to damage */ @@ -335,7 +334,7 @@ struct object_type * OM_NOMSG --- temporary flag to suppress messages which were * already printed in autopick_pickup_items(). */ - #define OM_FOUND 0x01 /*!< ƒAƒCƒeƒ€‚ðˆê“x‚Å‚àŽ‹ŠE‚ÉŽû‚ß‚½‚±‚Æ‚ª‚ ‚é‚© */ + #define OM_FOUND 0x01 /*!< アイテムを一度でも視界に収めたことがあるか */ #define OM_NOMSG 0x02 /* temporary flag to suppress messages */ #define OM_NO_QUERY 0x04 /* Query for auto-pick was already answered as 'No' */ #define OM_AUTODESTROY 0x08 /* Destroy later to avoid illegal inventry shift */ @@ -387,9 +386,9 @@ struct object_type BIT_FLAGS curse_flags; /* Flags for curse */ OBJECT_IDX next_o_idx; /* Next object in stack (if any) */ - MONSTER_IDX held_m_idx; /* Monster holding us (if any) */ + MONSTER_IDX held_m_idx; /*!< アイテムを所持しているモンスターID (いないなら 0) / Monster holding us (if any) */ - ARTIFACT_BIAS_IDX artifact_bias; /*!< ƒ‰ƒ“ƒ_ƒ€ƒA[ƒeƒBƒtƒ@ƒNƒg¶¬Žž‚̃oƒCƒAƒXID */ + ARTIFACT_BIAS_IDX artifact_bias; /*!< ランダムアーティファクト生成時のバイアスID */ }; extern bool(*item_tester_hook)(object_type *o_ptr); @@ -409,32 +408,23 @@ extern concptr item_activation(object_type *o_ptr); extern bool screen_object(object_type *o_ptr, BIT_FLAGS mode); extern char index_to_label(int i); -extern INVENTORY_IDX label_to_inven(int c); -extern INVENTORY_IDX label_to_equip(int c); extern s16b wield_slot(object_type *o_ptr); -extern concptr mention_use(int i); -extern concptr describe_use(int i); + extern bool check_book_realm(const OBJECT_TYPE_VALUE book_tval, const OBJECT_SUBTYPE_VALUE book_sval); -extern bool item_tester_okay(object_type *o_ptr); -extern void display_inven(void); -extern void display_equip(void); -extern COMMAND_CODE show_inven(int target_item, BIT_FLAGS mode); -extern COMMAND_CODE show_equip(int target_item, BIT_FLAGS mode); -extern void toggle_inven_equip(void); /* - * get_item()ŠÖ”‚ŃAƒCƒeƒ€‚Ì‘I‘ð‚ðs‚¤ƒtƒ‰ƒO / Bit flags for the "get_item" function + * get_item()関数でアイテムの選択を行うフラグ / Bit flags for the "get_item" function */ -#define USE_EQUIP 0x01 /*!< ƒAƒCƒeƒ€•\Ž¦/‘I‘ð”͈Í: ‘•”õ•i‚©‚ç‚Ì‘I‘ð‚ð‹–‰Â‚·‚é / Allow equip items */ -#define USE_INVEN 0x02 /*!< ƒAƒCƒeƒ€•\Ž¦/‘I‘ð”͈Í: ŠŽ•i‚©‚ç‚Ì‘I‘ð‚ð‹–‰Â‚·‚é / Allow inven items */ -#define USE_FLOOR 0x04 /*!< ƒAƒCƒeƒ€•\Ž¦/‘I‘ð”͈Í: °‰º‚̃AƒCƒeƒ€‚©‚ç‚Ì‘I‘ð‚ð‹–‰Â‚·‚é / Allow floor items */ -#define USE_FORCE 0x08 /*!< “ÁŽê: wƒL[‚ŘB‹Cp‚ւ̐؂è‘Ö‚¦‚ð‹–‰Â‚·‚é */ -#define IGNORE_BOTHHAND_SLOT 0x10 /*!< ƒAƒCƒeƒ€•\Ž¦/‘I‘ð”͈Í: —¼ŽèŽ‚¿ƒXƒƒbƒg‚ð‘I‘ð‚ÉŠÜ‚ß‚È‚¢ */ -#define USE_FULL 0x20 /*!< ƒAƒCƒeƒ€•\Ž¦/‘I‘ð”͈Í: ‹ó—“‚Ü‚Å‚·‚ׂĕ\Ž¦‚·‚é*/ -extern bool can_get_item(void); -extern bool get_item(OBJECT_IDX *cp, concptr pmt, concptr str, BIT_FLAGS mode); -extern object_type *choose_object(OBJECT_IDX *idx, concptr q, concptr s, BIT_FLAGS option); -PERCENTAGE breakage_chance(object_type *o_ptr, SPELL_IDX snipe_type); +#define USE_EQUIP 0x01 /*!< アイテム表示/選択範囲: 装備品からの選択を許可する / Allow equip items */ +#define USE_INVEN 0x02 /*!< アイテム表示/選択範囲: 所持品からの選択を許可する / Allow inven items */ +#define USE_FLOOR 0x04 /*!< アイテム表示/選択範囲: 床下のアイテムからの選択を許可する / Allow floor items */ +#define USE_FORCE 0x08 /*!< 特殊: wキーで錬気術への切り替えを許可する */ +#define IGNORE_BOTHHAND_SLOT 0x10 /*!< アイテム表示/選択範囲: 両手持ちスロットを選択に含めない */ +#define USE_FULL 0x20 /*!< アイテム表示/選択範囲: 空欄まですべて表示する*/ +extern bool can_get_item(OBJECT_TYPE_VALUE tval); +extern bool get_item(player_type *owner_ptr, OBJECT_IDX *cp, concptr pmt, concptr str, BIT_FLAGS mode, OBJECT_TYPE_VALUE tval); + +#define REF_ITEM(P_PTR, FLOOR_PTR, ID) ((ID >= 0 ? &(P_PTR)->inventory_list[ID] : &(FLOOR_PTR)->o_list[0 - item])) extern int bow_tval_ammo(object_type *o_ptr); @@ -442,8 +432,7 @@ extern int bow_tval_ammo(object_type *o_ptr); extern void excise_object_idx(OBJECT_IDX o_idx); extern void delete_object_idx(OBJECT_IDX o_idx); extern void delete_object(POSITION y, POSITION x); -extern void compact_objects(int size); -extern void wipe_o_list(void); + extern OBJECT_IDX o_pop(void); extern OBJECT_IDX get_obj_num(DEPTH level, BIT_FLAGS mode); extern void object_known(object_type *o_ptr); @@ -451,20 +440,20 @@ extern void object_aware(object_type *o_ptr); extern void object_tried(object_type *o_ptr); /* - * ƒAƒCƒeƒ€‚̊ȈՊӒè’è‹` / Game generated inscription indices. These are stored in the object, + * アイテムの簡易鑑定定義 / Game generated inscription indices. These are stored in the object, * and are used to index the string array from tables.c. */ -#define FEEL_NONE 0 /*!< ŠÈˆÕŠÓ’è: –¢ŠÓ’è */ -#define FEEL_BROKEN 1 /*!< ŠÈˆÕŠÓ’è: ‰ó‚ê‚Ä‚¢‚é */ -#define FEEL_TERRIBLE 2 /*!< ŠÈˆÕŠÓ’è: ‹°‚낵‚¢ */ -#define FEEL_WORTHLESS 3 /*!< ŠÈˆÕŠÓ’è: –³‰¿’l */ -#define FEEL_CURSED 4 /*!< ŠÈˆÕŠÓ’è: Žô‚í‚ê‚Ä‚¢‚é */ -#define FEEL_UNCURSED 5 /*!< ŠÈˆÕŠÓ’è: Žô‚í‚ê‚Ä‚¢‚È‚¢ */ -#define FEEL_AVERAGE 6 /*!< ŠÈˆÕŠÓ’è: •À */ -#define FEEL_GOOD 7 /*!< ŠÈˆÕŠÓ’è: ãŽ¿ */ -#define FEEL_EXCELLENT 8 /*!< ŠÈˆÕŠÓ’è: ‚‹‰ */ -#define FEEL_SPECIAL 9 /*!< ŠÈˆÕŠÓ’è: “Á•Ê */ -#define FEEL_MAX 9 /*!< ŠÈˆÕŠÓ’è‚ÌŽí•Ê” */ +#define FEEL_NONE 0 /*!< 簡易鑑定: 未鑑定 */ +#define FEEL_BROKEN 1 /*!< 簡易鑑定: 壊れている */ +#define FEEL_TERRIBLE 2 /*!< 簡易鑑定: 恐ろしい */ +#define FEEL_WORTHLESS 3 /*!< 簡易鑑定: 無価値 */ +#define FEEL_CURSED 4 /*!< 簡易鑑定: 呪われている */ +#define FEEL_UNCURSED 5 /*!< 簡易鑑定: 呪われていない */ +#define FEEL_AVERAGE 6 /*!< 簡易鑑定: 並 */ +#define FEEL_GOOD 7 /*!< 簡易鑑定: 上質 */ +#define FEEL_EXCELLENT 8 /*!< 簡易鑑定: 高級 */ +#define FEEL_SPECIAL 9 /*!< 簡易鑑定: 特別 */ +#define FEEL_MAX 9 /*!< 簡易鑑定の種別数 */ extern byte value_check_aux1(object_type *o_ptr); extern byte value_check_aux2(object_type *o_ptr); @@ -488,16 +477,15 @@ extern void object_copy(object_type *o_ptr, object_type *j_ptr); #define AM_GREAT 0x00000004 /*!< Generate great items */ #define AM_SPECIAL 0x00000008 /*!< Generate artifacts (for debug mode only) */ #define AM_CURSED 0x00000010 /*!< Generate cursed/worthless items */ -#define AM_FORBID_CHEST 0x00000020 /*!< ” ‚©‚炳‚ç‚É” ‚ªoŒ»‚·‚邱‚Æ‚ð—}Ž~‚·‚é */ +#define AM_FORBID_CHEST 0x00000020 /*!< 箱からさらに箱が出現することを抑止する */ extern void apply_magic(object_type *o_ptr, DEPTH lev, BIT_FLAGS mode); extern OBJECT_SUBTYPE_VALUE coin_type; extern bool make_object(object_type *j_ptr, BIT_FLAGS mode); -extern void place_object(POSITION y, POSITION x, BIT_FLAGS mode); extern bool make_gold(object_type *j_ptr); -extern void place_gold(POSITION y, POSITION x); extern OBJECT_IDX drop_near(object_type *o_ptr, PERCENTAGE chance, POSITION y, POSITION x); +extern void vary_item(INVENTORY_IDX item, ITEM_NUMBER num); extern void inven_item_charges(INVENTORY_IDX item); extern void inven_item_describe(INVENTORY_IDX item); extern void inven_item_increase(INVENTORY_IDX item, ITEM_NUMBER num); @@ -511,7 +499,7 @@ extern bool object_sort_comp(object_type *o_ptr, s32b o_value, object_type *j_pt extern s16b inven_carry(object_type *o_ptr); extern INVENTORY_IDX inven_takeoff(INVENTORY_IDX item, ITEM_NUMBER amt); extern void inven_drop(INVENTORY_IDX item, ITEM_NUMBER amt); -extern void combine_pack(void); +extern void combine_pack(player_type *owner_ptr); extern void reorder_pack(void); extern void display_koff(KIND_OBJECT_IDX k_idx); extern void torch_flags(object_type *o_ptr, BIT_FLAGS *flgs); @@ -521,8 +509,9 @@ extern concptr essence_name[]; extern s32b flag_cost(object_type *o_ptr, int plusses); -extern bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode); -extern void py_pickup_floor(bool pickup); +extern bool get_item_floor(COMMAND_CODE *cp, concptr pmt, concptr str, BIT_FLAGS mode, OBJECT_TYPE_VALUE tval); +extern void py_pickup_floor(player_type *creature_ptr, bool pickup); +extern void prepare_label_string(char *label, BIT_FLAGS mode, OBJECT_TYPE_VALUE tval); /* * Return the "attr" for a given item. @@ -1138,10 +1127,10 @@ extern void py_pickup_floor(bool pickup); #define SV_FOOD_PINT_OF_WINE 39 -#define SV_ROD_MIN_DIRECTION 12 /*!< ‚±‚Ì’lˆÈ~‚̏¬€–ÚID‚ðŽ‚Á‚½ƒƒbƒh‚ÍŽg—pŽž‚Ƀ^[ƒQƒbƒg‚ð—v‹‚·‚é / Special "sval" limit -- first "aimed" rod */ +#define SV_ROD_MIN_DIRECTION 12 /*!< この値以降の小項目IDを持ったロッドは使用時にターゲットを要求する / Special "sval" limit -- first "aimed" rod */ -#define SV_CHEST_MIN_LARGE 4 /*!< ‚±‚Ì’lˆÈ~‚̏¬€–ÚID‚ðŽ‚Á‚½” ‚Í‘åŒ^‚Ì” ‚Æ‚µ‚ăhƒƒbƒv”‚𑝂₷ / Special "sval" limit -- first "large" chest */ -#define SV_CHEST_KANDUME 50 /*!< ” ƒAƒCƒeƒ€‚̏¬€–ÚID: ‚¨‚à‚¿‚á‚̃Jƒ“ƒdƒ */ +#define SV_CHEST_MIN_LARGE 4 /*!< この値以降の小項目IDを持った箱は大型の箱としてドロップ数を増やす / Special "sval" limit -- first "large" chest */ +#define SV_CHEST_KANDUME 50 /*!< 箱アイテムの小項目ID: おもちゃのカンヅメ */ /* * Special "sval" limit -- first "good" magic/prayer book