*/
#include "angband.h"
+#include "cmd-item.h"
+#include "cmd-zapwand.h"
+#include "cmd-magiceat.h"
#define MIN_STOCK 12
* @param annoyed 店主のいらつき度
* @return なし
*/
-static void say_comment_2(s32b value, int annoyed)
+static void say_comment_2(PRICE value, int annoyed)
{
char tmp_val[80];
* @param annoyed 店主のいらつき度
* @return なし
*/
-static void say_comment_3(s32b value, int annoyed)
+static void say_comment_3(PRICE value, int annoyed)
{
char tmp_val[80];
* @details
* We paid "price", it was worth "value", and we thought it was worth "guess"
*/
-static void purchase_analyze(s32b price, s32b value, s32b guess)
+static void purchase_analyze(PRICE price, PRICE value, PRICE guess)
{
/* Item was worthless, but we bought it */
if ((value <= 0) && (price > value))
{
- /* Comment */
msg_print(comment_7a[randint0(MAX_COMMENT_7A)]);
-
chg_virtue(V_HONOUR, -1);
chg_virtue(V_JUSTICE, -1);
-
- /* Sound */
sound(SOUND_STORE1);
}
/* Item was cheaper than we thought, and we paid more than necessary */
else if ((value < guess) && (price > value))
{
- /* Comment */
msg_print(comment_7b[randint0(MAX_COMMENT_7B)]);
-
chg_virtue(V_JUSTICE, -1);
- if (one_in_(4))
- chg_virtue(V_HONOUR, -1);
-
- /* Sound */
+ if (one_in_(4)) chg_virtue(V_HONOUR, -1);
sound(SOUND_STORE2);
}
/* Item was a good bargain, and we got away with it */
else if ((value > guess) && (value < (4 * guess)) && (price < value))
{
- /* Comment */
msg_print(comment_7c[randint0(MAX_COMMENT_7C)]);
-
- if (one_in_(4))
- chg_virtue(V_HONOUR, -1);
- else if (one_in_(4))
- chg_virtue(V_HONOUR, 1);
-
- /* Sound */
+ if (one_in_(4)) chg_virtue(V_HONOUR, -1);
+ else if (one_in_(4)) chg_virtue(V_HONOUR, 1);
sound(SOUND_STORE3);
}
/* Item was a great bargain, and we got away with it */
else if ((value > guess) && (price < value))
{
- /* Comment */
msg_print(comment_7d[randint0(MAX_COMMENT_7D)]);
-
- if (one_in_(2))
- chg_virtue(V_HONOUR, -1);
- if (one_in_(4))
- chg_virtue(V_HONOUR, 1);
-
- if (10 * price < value)
- chg_virtue(V_SACRIFICE, 1);
-
- /* Sound */
+ if (one_in_(2)) chg_virtue(V_HONOUR, -1);
+ if (one_in_(4)) chg_virtue(V_HONOUR, 1);
+ if (10 * price < value) chg_virtue(V_SACRIFICE, 1);
sound(SOUND_STORE4);
}
}
/* Ensure that mass-produced rods and wands get the correct pvals. */
if ((o_ptr->tval == TV_ROD) || (o_ptr->tval == TV_WAND))
{
- o_ptr->pval *= o_ptr->number;
+ o_ptr->pval *= (PARAMETER_VALUE)o_ptr->number;
}
}
*/
static bool is_blessed(object_type *o_ptr)
{
- u32b flgs[TR_FLAG_SIZE];
+ BIT_FLAGS flgs[TR_FLAG_SIZE];
object_flags(o_ptr, flgs);
if (have_flag(flgs, TR_BLESSED)) return (TRUE);
else return (FALSE);
}
}
- /* XXX XXX XXX Ignore "worthless" items */
+ /* Ignore "worthless" items */
if (object_value(o_ptr) <= 0) return (FALSE);
/* Assume okay */
/* Combine the items in the home (backwards) */
for (i = st_ptr->stock_num - 1; i > 0; i--)
{
- /* Get the item */
o_ptr = &st_ptr->stock[i];
/* Skip empty items */
{
int max_num;
- /* Get the item */
j_ptr = &st_ptr->stock[j];
/* Skip empty items */
/* Take note */
combined = TRUE;
- /* Done */
break;
}
}
/* Re-order the items in the home (forwards) */
for (i = 0; i < st_ptr->stock_num; i++)
{
- /* Get the item */
o_ptr = &st_ptr->stock[i];
/* Skip empty slots */
* </pre>
* @todo numは本来ITEM_NUMBER型にしたい。
*/
-static void store_item_increase(int item, int num)
+static void store_item_increase(INVENTORY_IDX item, int num)
{
int cnt;
object_type *o_ptr;
- /* Get the item */
o_ptr = &st_ptr->stock[item];
/* Verify the number */
* @param item 削除したいアイテムのID
* @return なし
*/
-static void store_item_optimize(int item)
+static void store_item_optimize(INVENTORY_IDX item)
{
int j;
object_type *o_ptr;
- /* Get the item */
o_ptr = &st_ptr->stock[item];
/* Must exist */
*/
static void store_delete(void)
{
- int what, num;
+ INVENTORY_IDX what;
+ int num;
/* Pick a random slot */
- what = randint0(st_ptr->stock_num);
+ what = (INVENTORY_IDX)randint0(st_ptr->stock_num);
/* Determine how many items are here */
num = st_ptr->stock[what].number;
*/
static void store_create(void)
{
- int i, tries, level;
+ OBJECT_IDX i;
+ int tries;
+ DEPTH level;
object_type forge;
object_type *q_ptr;
* @param minprice アイテムの最低販売価格
* @return 割引を禁止するならTRUEを返す。
*/
-static bool noneedtobargain(s32b minprice)
+static bool noneedtobargain(PRICE minprice)
{
s32b good = st_ptr->good_buy;
s32b bad = st_ptr->bad_buy;
* @param num 売買数
* @return なし
*/
-static void updatebargain(s32b price, s32b minprice, int num)
+static void updatebargain(PRICE price, PRICE minprice, int num)
{
/* Hack -- auto-haggle */
if (!manual_haggle) return;
char o_name[MAX_NLEN];
char out_val[160];
-
int maxwid = 75;
- /* Get the item */
o_ptr = &st_ptr->stock[pos];
/* Get the "offset" */
/* Leave room for weights, if necessary -DRS- */
if (show_weights) maxwid -= 10;
- /* Describe the object */
object_desc(o_name, o_ptr, 0);
o_name[maxwid] = '\0';
c_put_str(tval_to_attr[o_ptr->tval], o_name, i+6, cur_col);
/* Show weights */
- if (show_weights)
+ if(show_weights)
{
/* Only show the weight of an individual item */
int wgt = o_ptr->weight;
#ifdef JP
- sprintf(out_val, "%3d.%1d kg", lbtokg1(wgt) , lbtokg2(wgt) );
+ sprintf(out_val, "%3d.%1d kg", lbtokg1(wgt) , lbtokg2(wgt));
put_str(out_val, i+6, 67);
#else
(void)sprintf(out_val, "%3d.%d lb", wgt / 10, wgt % 10);
* @param j 選択範囲の最大値
* @return 実際に選択したらTRUE、キャンセルしたらFALSE
*/
-static int get_stock(int *com_val, cptr pmt, int i, int j)
+static int get_stock(COMMAND_CODE *com_val, cptr pmt, int i, int j)
{
char command;
char out_val[160];
char lo, hi;
-#ifdef ALLOW_REPEAT /* TNB */
-
/* Get the item index */
if (repeat_pull(com_val))
{
}
}
-#endif /* ALLOW_REPEAT -- TNB */
-
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
/* Ask until done */
while (TRUE)
{
- int k;
+ COMMAND_CODE k;
/* Escape */
if (!get_com(out_val, &command, FALSE)) break;
break;
}
- /* Oops */
bell();
}
/* Cancel */
if (command == ESCAPE) return (FALSE);
-#ifdef ALLOW_REPEAT /* TNB */
-
repeat_push(*com_val);
-#endif /* ALLOW_REPEAT -- TNB */
-
/* Success */
return (TRUE);
}
* @param final 最終確定価格ならばTRUE
* @return プレイヤーを締め出す場合TRUEを返す
*/
-static int get_haggle(cptr pmt, s32b *poffer, s32b price, int final)
+static int get_haggle(cptr pmt, s32b *poffer, PRICE price, int final)
{
s32b i;
}
- /* Paranoia XXX XXX XXX */
+ /* Paranoia */
msg_print(NULL);
*/
static bool receive_offer(cptr pmt, s32b *poffer,
s32b last_offer, int factor,
- s32b price, int final)
+ PRICE price, int final)
{
/* Haggle till done */
while (TRUE)
/* No reason to haggle */
if (final_ask >= purse)
{
- /* Message */
#ifdef JP
msg_print("即座にこの金額にまとまった。");
#else
/* No need to haggle */
else if (noneed)
{
- /* Message */
#ifdef JP
msg_print("結局この金額にまとまった。");
#else
final_ask *= o_ptr->number;
- /* XXX XXX XXX Display commands */
+ /* Display commands */
/* Haggling parameters */
min_per = ot_ptr->haggle_per;
static void store_purchase(void)
{
int i, choice;
- int item, item_new;
+ COMMAND_CODE item, item_new;
ITEM_NUMBER amt;
- s32b price, best;
+ PRICE price, best;
object_type forge;
object_type *j_ptr;
/* Describe the object (fully) */
object_desc(o_name, j_ptr, 0);
- /* Message */
#ifdef JP
msg_format("%s(%c)を購入する。", o_name, I2A(item));
#else
/* Describe the transaction */
object_desc(o_name, j_ptr, 0);
- /* Message */
#ifdef JP
msg_format("%sを $%ldで購入しました。", o_name, (long)price);
#else
/* Describe the final result */
object_desc(o_name, &inventory[item_new], 0);
- /* Message */
#ifdef JP
msg_format("%s(%c)を手に入れた。", o_name, index_to_label(item_new));
#else
if (one_in_(STORE_SHUFFLE))
{
char buf[80];
- /* Message */
#ifdef JP
msg_print("店主は引退した。");
#else
/* Maintain */
else
{
- /* Message */
#ifdef JP
msg_print("店主は新たな在庫を取り出した。");
#else
/* Describe just the result */
object_desc(o_name, &inventory[item_new], 0);
- /* Message */
#ifdef JP
msg_format("%s(%c)を取った。",
#else
static void store_sell(void)
{
int choice;
- int item, item_pos;
+ OBJECT_IDX item;
+ int item_pos;
int amt;
- s32b price, value, dummy;
+ PRICE price, value, dummy;
object_type forge;
object_type *q_ptr;
/* Only allow items the store will buy */
item_tester_hook = store_will_buy;
- /* Get an item */
/* 我が家でおかしなメッセージが出るオリジナルのバグを修正 */
if (cur_store_num == STORE_HOME)
{
/* Hack -- Cannot remove cursed items */
if ((item >= INVEN_RARM) && object_is_cursed(o_ptr))
{
- /* Oops */
#ifdef JP
msg_print("ふーむ、どうやらそれは呪われているようだね。");
#else
#endif
- /* Nope */
return;
}
static void store_examine(void)
{
int i;
- int item;
+ COMMAND_CODE item;
object_type *o_ptr;
char o_name[MAX_NLEN];
char out_val[160];
static void museum_remove_object(void)
{
int i;
- int item;
+ COMMAND_CODE item;
object_type *o_ptr;
char o_name[MAX_NLEN];
char out_val[160];
if (!get_check(format("Really order to remove %s from the Museum? ", o_name))) return;
#endif
- /* Message */
#ifdef JP
msg_format("%sの展示をやめさせた。", o_name);
#else
*/
static void store_process_command(void)
{
-#ifdef ALLOW_REPEAT /* TNB */
-
/* Handle repeating the last command */
repeat_check();
-#endif /* ALLOW_REPEAT -- TNB */
-
if (rogue_like_commands && command_cmd == 'l')
{
command_cmd = 'x'; /* hack! */
#endif
}
- /* Shop commands XXX XXX XXX */
+ /* Shop commands */
else
{
#ifdef JP
/* Handle stuff */
handle_stuff();
- /* XXX XXX XXX Pack Overflow */
+ /* Pack Overflow */
if (inventory[INVEN_PACK].k_idx)
{
- int item = INVEN_PACK;
+ INVENTORY_IDX item = INVEN_PACK;
object_type *o_ptr = &inventory[item];
/* Hack -- Flee from the store */
if (cur_store_num != STORE_HOME)
{
- /* Message */
#ifdef JP
if (cur_store_num == STORE_MUSEUM)
msg_print("ザックからアイテムがあふれそうなので、あわてて博物館から出た...");
/* Hack -- Flee from the home */
else if (!store_check_num(o_ptr))
{
- /* Message */
#ifdef JP
msg_print("ザックからアイテムがあふれそうなので、あわてて家から出た...");
#else
/* Describe it */
object_desc(o_name, q_ptr, 0);
- /* Message */
#ifdef JP
msg_format("%sが落ちた。(%c)", o_name, index_to_label(item));
#else
p_ptr->town_num = old_town_num;
- /* Free turn XXX XXX XXX */
+ /* Free turn */
p_ptr->energy_use = 100;
/* Allow expanding macros */
get_com_no_macros = FALSE;
- /* Flush messages XXX XXX XXX */
+ /* Flush messages */
msg_print(NULL);
/* Redraw map */
p_ptr->redraw |= (PR_MAP);
- /* Window stuff */
p_ptr->window |= (PW_OVERHEAD | PW_DUNGEON);
}
{
object_type *o_ptr;
- /* Get the item */
o_ptr = &st_ptr->stock[i];
if (!object_is_artifact(o_ptr))
o_ptr->ident &= ~(IDENT_FIXED);
/* Mega-Hack -- Note that the item is "on sale" */
-#ifdef JP
- o_ptr->inscription = quark_add("売出中");
-#else
- o_ptr->inscription = quark_add("on sale");
-#endif
+ o_ptr->inscription = quark_add(_("売出中", "on sale"));
}
}
}
*/
void store_maint(int town_num, int store_num)
{
- int j;
+ INVENTORY_IDX j;
cur_store_num = store_num;