/* * Play with an item. Options include: * - Output statistics (via wiz_roll_item) * - Reroll item (via wiz_reroll_item) * - Change properties (via wiz_tweak_item) * - Change the number of items (via wiz_quantity_item) */ static void do_cmd_wiz_play(void) { int item; object_type *i_ptr; object_type object_type_body; object_type *o_ptr; struct keypress ch; const char *q, *s; bool changed = FALSE; bool all = TRUE; /* Get an item */ q = "Play with which object? "; s = "You have nothing to play with."; if (!get_item(&item, q, s, 0, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return; o_ptr = object_from_item_idx(item); /* Save screen */ screen_save(); /* Get local object */ i_ptr = &object_type_body; /* Copy object */ object_copy(i_ptr, o_ptr); /* The main loop */ while (TRUE) { /* Display the item */ wiz_display_item(i_ptr, all); /* Get choice */ if (!get_com("[a]ccept [s]tatistics [r]eroll [t]weak [c]urse [q]uantity [k]nown? ", &ch)) break; if (ch.code == 'A' || ch.code == 'a') { changed = TRUE; break; } else if (ch.code == 'c' || ch.code == 'C') wiz_tweak_curse(i_ptr); else if (ch.code == 's' || ch.code == 'S') wiz_statistics(i_ptr, p_ptr->depth); else if (ch.code == 'r' || ch.code == 'R') wiz_reroll_item(i_ptr); else if (ch.code == 't' || ch.code == 'T') wiz_tweak_item(i_ptr); else if (ch.code == 'k' || ch.code == 'K') all = !all; else if (ch.code == 'q' || ch.code == 'Q') { bool carried = (item >= 0) ? TRUE : FALSE; wiz_quantity_item(i_ptr, carried); } } /* Load screen */ screen_load(); /* Accept change */ if (changed) { /* Message */ msg("Changes accepted."); /* Change */ object_copy(o_ptr, i_ptr); /* Recalculate bonuses */ p_ptr->update |= (PU_BONUS); /* Combine / Reorder the pack (later) */ p_ptr->notice |= (PN_COMBINE | PN_REORDER); /* Window stuff */ p_ptr->redraw |= (PR_INVEN | PR_EQUIP ); } /* Ignore change */ else { msg("Changes ignored."); } }
/* * Play with an item. Options include: * - Output statistics (via wiz_roll_item) * - Reroll item (via wiz_reroll_item) * - Change properties (via wiz_tweak_item) * - Change the number of items (via wiz_quantity_item) */ static void do_cmd_wiz_play(void) { int item; object_type forge; object_type *q_ptr; object_type *o_ptr; char ch; bool changed = FALSE; cptr q, s; /* Get an item */ q = "Play with which object? "; s = "You have nothing to play with."; if (!get_item(&item, q, s, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return; /* Get the item (in the pack) */ if (item >= 0) { o_ptr = &inventory[item]; } /* Get the item (on the floor) */ else { o_ptr = &o_list[0 - item]; } /* Save the screen */ screen_save(); /* Get local object */ q_ptr = &forge; /* Copy object */ object_copy(q_ptr, o_ptr); /* Display the item */ wiz_display_item(q_ptr); /* Display the rarity graph - turned off for now (too slow).*/ /* prt_alloc(o_ptr, 2, 0, 1000); */ /* The main loop */ while (TRUE) { /* Display the item */ wiz_display_item(q_ptr); /* Get choice */ if (!get_com("[a]ccept [s]tatistics [r]eroll [t]weak [q]uantity? ", &ch)) { break; } if (ch == 'A' || ch == 'a') { changed = TRUE; break; } if (ch == 's' || ch == 'S') { wiz_statistics(q_ptr); } if (ch == 'r' || ch == 'r') { wiz_reroll_item(q_ptr); } if (ch == 't' || ch == 'T') { wiz_tweak_item(q_ptr); } if (ch == 'q' || ch == 'Q') { wiz_quantity_item(q_ptr); } } /* Restore the screen */ screen_load(); /* Accept change */ if (changed) { /* Message */ msg_print("Changes accepted."); /* Change */ object_copy(o_ptr, q_ptr); /* Recalculate bonuses */ p_ptr->update |= (PU_BONUS); /* Combine / Reorder the pack (later) */ p_ptr->notice |= (PN_COMBINE | PN_REORDER); /* Window stuff */ p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_SPELL | PW_PLAYER | PW_PLAYRES); } /* Ignore change */ else { msg_print("Changes ignored."); } }
/** * Play with an item. Options include: * - Output statistics (via wiz_roll_item) * - Reroll item (via wiz_reroll_item) * - Change properties (via wiz_tweak_item) * - Change the number of items (via wiz_quantity_item) */ static void do_cmd_wiz_play(void) { int item; object_type *i_ptr; object_type object_type_body; object_type *o_ptr; struct keypress ch; const char *q, *s; bool changed; /* Get an item */ q = "Play with which object? "; s = "You have nothing to play with."; if (!get_item(&item, q, s, 0, (USE_EQUIP | USE_INVEN | USE_FLOOR))) return; /* Get the item (in the pack) */ if (item >= 0) { o_ptr = &p_ptr->inventory[item]; } /* Get the item (on the floor) */ else { o_ptr = &o_list[0 - item]; } /* The item was not changed */ changed = FALSE; /* Save screen */ screen_save(); /* Get local object */ i_ptr = &object_type_body; /* Copy object */ object_copy(i_ptr, o_ptr); /* The main loop */ while (TRUE) { /* Display the item */ wiz_display_item(i_ptr); /* Get choice */ if (!get_com ("[a]ccept [s]tatistics [r]eroll [t]weak [q]uantity? ", &ch)) { changed = FALSE; break; } if (ch.code == 'A' || ch.code == 'a') { changed = TRUE; break; } if (ch.code == 's' || ch.code == 'S') { wiz_statistics(i_ptr); } if (ch.code == 'r' || ch.code == 'R') { wiz_reroll_item(i_ptr); } if (ch.code == 't' || ch.code == 'T') { wiz_tweak_item(i_ptr); } if (ch.code == 'q' || ch.code == 'Q') { wiz_quantity_item(i_ptr); } } /* Load screen */ screen_load(); /* Accept change */ if (changed) { /* Message */ msg("Changes accepted."); /* Change */ object_copy(o_ptr, i_ptr); /* Recalculate bonuses */ p_ptr->update |= (PU_BONUS); /* Combine / Reorder the pack (later) */ p_ptr->notice |= (PN_COMBINE | PN_REORDER | PN_SORT_QUIVER); /* Redraw stuff */ p_ptr->redraw |= (PR_INVEN | PR_EQUIP); } /* Ignore change */ else { msg("Changes ignored."); } }