/* * Ask for and parse a "debug command" * The "command_arg" may have been set. */ void do_cmd_debug(void) { int py = p_ptr->py; int px = p_ptr->px; int x, y; char cmd; /* Get a "debug command" */ (void)get_com("Debug Command: ", &cmd); /* Analyze the command */ switch (cmd) { /* Nothing */ case ESCAPE: case ' ': case '\n': case '\r': break; #ifdef ALLOW_SPOILERS /* Hack -- Generate Spoilers */ case '"': do_cmd_spoilers(); break; #endif /* ALLOW_SPOILERS */ #ifdef MATLAB case '=': output_monster_matlab(); break; #endif /* MATLAB */ /* Hack -- Help */ case '?': screen_save(); (void)show_file("wizard.txt", NULL, 0 , 0); screen_load(); break; /* Cure all maladies */ case 'a': do_cmd_wiz_cure_all(); break; /* Know alignment */ case 'A': msg_format("Your alignment is %d.", p_ptr->align); break; /* Teleport to target */ case 'b': do_cmd_wiz_bamf(); break; /* Create any object */ case 'c': wiz_create_item(); break; /* Create a named artifact */ case 'C': /* wiz_create_named_art(p_ptr->command_arg);*/ break; /* Detect everything */ case 'd': (void)detect_all(); break; /* Edit character */ case 'e': do_cmd_wiz_change(); break; /* View item info */ case 'f': (void)identify_fully(); break; /* Create feature */ case 'F': if (p_ptr->command_arg > 0) do_cmd_wiz_feature(p_ptr->command_arg); break; /* Good Objects */ case 'g': if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->command_arg, FALSE, TRUE); break; /* Hitpoint rerating */ case 'h': do_cmd_rerate(); break; #ifdef MONSTER_HORDES case 'H': do_cmd_summon_horde(); break; #endif /* MONSTER_HORDES */ /* Identify */ case 'i': (void)ident_spell(); break; /* Fields Integrity */ case 'I': (void)test_field_data_integrity(); break; /* Go up or down in the dungeon */ case 'j': do_cmd_wiz_jump(); break; /* Test compression code */ case 'J': /* test_compress_module(); */ break; /* Self-Knowledge */ case 'k': self_knowledge(); break; /* Learn about objects */ case 'l': do_cmd_wiz_learn(); break; /* Lose Mutation */ case 'L': (void)lose_mutation(p_ptr->command_arg); break; /* Magic Mapping */ case 'm': map_area(); break; /* Gain Mutation */ case 'M': (void)gain_mutation(p_ptr->command_arg); break; /* Specific reward */ case 'r': (void)gain_level_reward(p_ptr->command_arg); break; /* Summon _friendly_ named monster */ case 'N': do_cmd_wiz_named_friendly(p_ptr->command_arg, TRUE); break; /* Summon Named Monster */ case 'n': do_cmd_wiz_named(p_ptr->command_arg, TRUE); break; /* Object playing routines */ case 'o': do_cmd_wiz_play(); break; /* Phase Door */ case 'p': teleport_player(10); break; #if 0 /* Complete a Quest -KMW- */ case 'q': { for (i = 0; i < max_quests; i++) { if (p_ptr->quest[i].status == QUEST_STATUS_TAKEN) { p_ptr->quest[i].status++; msg_print("Completed Quest"); msg_print(NULL); break; } } if (i == max_quests) { msg_print("No current quest"); msg_print(NULL); } break; } #endif /* Make every dungeon square "known" to test streamers -KMW- */ case 'u': { for (y = min_hgt; y < max_hgt; y++) { for (x = min_wid; x < max_wid; x++) { area(y, x)->info |= (CAVE_GLOW | CAVE_MARK); } } wiz_lite(); break; } /* Summon Random Monster(s) */ case 's': if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; do_cmd_wiz_summon(p_ptr->command_arg); break; /* Teleport */ case 't': teleport_player(100); break; /* Very Good Objects */ case 'v': if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->command_arg, TRUE, TRUE); break; /* Wizard Light the Level */ case 'w': if (p_ptr->depth) { wiz_lite(); } else { learn_map(); } break; case 'W': test_decision_tree(); break; /* Increase Experience */ case 'x': if (p_ptr->command_arg) { gain_exp(p_ptr->command_arg); } else { gain_exp(p_ptr->exp + 1); } break; /* Zap Monsters (Genocide) */ case 'z': do_cmd_wiz_zap(); break; case 'Z': do_cmd_wiz_zap_all(); break; /* Hack -- whatever I desire */ case '_': do_cmd_wiz_hack_ben(); break; #ifdef USE_SCRIPT /* Hack -- activate a script */ case '@': do_cmd_wiz_script(); break; #endif /* USE_SCRIPT */ /* Not a Wizard Command */ default: msg_print("That is not a valid debug command."); break; } }
/* * Ask for and parse a "debug command" * * The "p_ptr->command_arg" may have been set. */ void do_cmd_debug(void) { int py = p_ptr->py; int px = p_ptr->px; struct keypress cmd; const monster_race *r_ptr; /* Get a "debug command" */ if (!get_com("Debug Command: ", &cmd)) return; /* Analyze the command */ switch (cmd.code) { /* Ignore */ case ESCAPE: case ' ': case KC_ENTER: { break; } #ifdef ALLOW_SPOILERS /* Hack -- Generate Spoilers */ case '"': { do_cmd_spoilers(); break; } #endif /* Hack -- Help */ case '?': { do_cmd_wiz_help(); break; } /* Cure all maladies */ case 'a': { do_cmd_wiz_cure_all(); break; } /* Make the player powerful */ case 'A': { do_cmd_wiz_advance(); break; } /* Teleport to target */ case 'b': { do_cmd_wiz_bamf(); break; } /* Create any object */ case 'c': { wiz_create_item(); break; } /* Create an artifact */ case 'C': { if (p_ptr->command_arg > 0) { wiz_create_artifact(p_ptr->command_arg); } else { char name[80] = ""; int a_idx = -1; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Create which artifact? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if an a_idx was entered */ a_idx = get_idx_from_name(name); /* If not, find the artifact with that name */ if (a_idx < 1) a_idx = lookup_artifact_name(name); /* Did we find a valid artifact? */ if (a_idx != -1) wiz_create_artifact(a_idx); else msg("No artifact found."); } /* Reload the screen */ screen_load(); } break; } /* Detect everything */ case 'd': { detect_all(TRUE); break; } /* Test for disconnected dungeon */ case 'D': { disconnect_stats(); break; } /* Edit character */ case 'e': { do_cmd_wiz_change(); break; } case 'f': { stats_collect(); break; } /* Good Objects */ case 'g': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->depth, p_ptr->command_arg, FALSE); break; } /* GF demo */ case 'G': { wiz_gf_demo(); break; } /* Hitpoint rerating */ case 'h': { do_cmd_rerate(); break; } /* Identify */ case 'i': { (void)ident_spell(); break; } /* Go up or down in the dungeon */ case 'j': { do_cmd_wiz_jump(); break; } /* Learn about objects */ case 'l': { do_cmd_wiz_learn(); break; } case 'L': do_cmd_keylog(); break; /* Magic Mapping */ case 'm': { map_area(); break; } /* Summon Named Monster */ case 'n': { s16b r_idx = 0; if (p_ptr->command_arg > 0) { r_idx = p_ptr->command_arg; } else { char name[80] = ""; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Summon which monster? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if a r_idx was entered */ r_idx = get_idx_from_name(name); /* If not, find the monster with that name */ if (r_idx < 1) r_idx = lookup_monster(name); p_ptr->redraw |= (PR_MAP | PR_MONLIST); /* Reload the screen */ screen_load(); } } if (r_idx > 0) do_cmd_wiz_named(r_idx, TRUE); else msg("No monster found."); break; } /* Object playing routines */ case 'o': { do_cmd_wiz_play(); break; } /* Phase Door */ case 'p': { teleport_player(10); break; } /* Monster pit stats */ case 'P': { pit_stats(); break; } /* Query the dungeon */ case 'q': { do_cmd_wiz_query(); break; } /* Get full recall for a monster */ case 'r': { s16b r_idx = 0; if (p_ptr->command_arg > 0) { r_idx = p_ptr->command_arg; } else { struct keypress sym; const char *prompt = "Full recall for [a]ll monsters or [s]pecific monster? "; if (!get_com(prompt, &sym)) return; if (sym.code == 'a' || sym.code == 'A') { int i; for (i = 1; i < z_info->r_max; i++) { r_ptr = &r_info[i]; cheat_monster_lore(r_ptr, &l_list[i]); } break; } else if (sym.code == 's' || sym.code == 'S') { char name[80] = ""; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Which monster? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if a r_idx was entered */ r_idx = get_idx_from_name(name); /* If not, find the monster with that name */ if (r_idx < 1) r_idx = lookup_monster(name); } /* Reload the screen */ screen_load(); } else { /* Assume user aborts */ break; } } /* Did we find a valid monster? */ if (r_idx > 0) { r_ptr = &r_info[r_idx]; cheat_monster_lore(r_ptr, &l_list[r_idx]); } else msg("No monster found."); break; } /* Summon Random Monster(s) */ case 's': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; do_cmd_wiz_summon(p_ptr->command_arg); break; } /* Collect stats (S) */ case 'S': { stats_collect(); break; } /* Teleport */ case 't': { teleport_player(100); break; } /* Create a trap */ case 'T': { if (cave->feat[p_ptr->py][p_ptr->px] != FEAT_FLOOR) msg("You can't place a trap there!"); else if (p_ptr->depth == 0) msg("You can't place a trap in the town!"); else cave_set_feat(cave, p_ptr->py, p_ptr->px, FEAT_INVIS); break; } /* Un-hide all monsters */ case 'u': { detect_monsters_entire_level(); break; } /* Very Good Objects */ case 'v': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->depth, p_ptr->command_arg, TRUE); break; } case 'V': { wiz_test_kind(p_ptr->command_arg); break; } /* Wizard Light the Level */ case 'w': { wiz_light(TRUE); break; } /* Wipe recall for a monster */ case 'W': { s16b r_idx = 0; if (p_ptr->command_arg > 0) { r_idx = p_ptr->command_arg; } else { struct keypress sym; const char *prompt = "Wipe recall for [a]ll monsters or [s]pecific monster? "; if (!get_com(prompt, &sym)) return; if (sym.code == 'a' || sym.code == 'A') { int i; for (i = 1; i < z_info->r_max; i++) { r_ptr = &r_info[i]; wipe_monster_lore(r_ptr, &l_list[i]); } break; } else if (sym.code == 's' || sym.code == 'S') { char name[80] = ""; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Which monster? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if a r_idx was entered */ r_idx = get_idx_from_name(name); /* If not, find the monster with that name */ if (r_idx < 1) r_idx = lookup_monster(name); } /* Reload the screen */ screen_load(); } else { /* Assume user aborts */ break; } } /* Did we find a valid monster? */ if (r_idx > 0) { r_ptr = &r_info[r_idx]; wipe_monster_lore(r_ptr, &l_list[r_idx]); } else msg("No monster found."); break; } /* Increase Experience */ case 'x': { if (p_ptr->command_arg) { player_exp_gain(p_ptr, p_ptr->command_arg); } else { player_exp_gain(p_ptr, p_ptr->exp + 1); } break; } /* Zap Monsters (Banishment) */ case 'z': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = MAX_SIGHT; do_cmd_wiz_zap(p_ptr->command_arg); break; } /* Hack */ case '_': { do_cmd_wiz_hack_ben(); break; } /* Oops */ default: { msg("That is not a valid debug command."); break; } } }
/* * Ask for and parse a "debug command" * * The "p_ptr->command_arg" may have been set. */ void do_cmd_debug(void) { int py = p_ptr->py; int px = p_ptr->px; char cmd; /* Get a "debug command" */ if (!get_com("Debug Command: ", &cmd)) return; /* Analyze the command */ switch (cmd) { /* Ignore */ case ESCAPE: case ' ': case '\n': case '\r': { break; } #ifdef ALLOW_SPOILERS /* Hack -- Generate Spoilers */ case '"': { do_cmd_spoilers(); break; } #endif /* Hack -- Help */ case '?': { do_cmd_help(); break; } /* Cure all maladies */ case 'a': { do_cmd_wiz_cure_all(); break; } /* Teleport to target */ case 'b': { do_cmd_wiz_bamf(); break; } /* Create any object */ case 'c': { wiz_create_item(); break; } /* Create an artifact */ case 'C': { wiz_create_artifact(p_ptr->command_arg); break; } /* Detect everything */ case 'd': { detect_all(); break; } /* Edit character */ case 'e': { do_cmd_wiz_change(); break; } /* View item info */ case 'f': { (void)identify_fully(); break; } /* Good Objects */ case 'g': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->command_arg, FALSE); break; } /* Hitpoint rerating */ case 'h': { do_cmd_rerate(); break; } /* Identify */ case 'i': { (void)ident_spell(); break; } /* Go up or down in the dungeon */ case 'j': { do_cmd_wiz_jump(); break; } /* Self-Knowledge */ case 'k': { self_knowledge(); break; } /* Learn about objects */ case 'l': { do_cmd_wiz_learn(); break; } /* Magic Mapping */ case 'm': { map_area(); break; } /* Summon Named Monster */ case 'n': { do_cmd_wiz_named(p_ptr->command_arg, TRUE); break; } /* Object playing routines */ case 'o': { do_cmd_wiz_play(); break; } /* Phase Door */ case 'p': { teleport_player(10); break; } /* Query the dungeon */ case 'q': { do_cmd_wiz_query(); break; } /* Summon Random Monster(s) */ case 's': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; do_cmd_wiz_summon(p_ptr->command_arg); break; } /* Teleport */ case 't': { teleport_player(100); break; } /* Un-hide all monsters */ case 'u': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 255; do_cmd_wiz_unhide(p_ptr->command_arg); break; } /* Very Good Objects */ case 'v': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->command_arg, TRUE); break; } /* Wizard Light the Level */ case 'w': { wiz_lite(); break; } /* Increase Experience */ case 'x': { if (p_ptr->command_arg) { gain_exp(p_ptr->command_arg); } else { gain_exp(p_ptr->exp + 1); } break; } /* Zap Monsters (Genocide) */ case 'z': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = MAX_SIGHT; do_cmd_wiz_zap(p_ptr->command_arg); break; } /* Oops */ default: { msg_print("That is not a valid debug command."); break; } } }
/*! * @brief デバッグコマンドを選択する処理のメインルーチン / * Ask for and parse a "debug command" * The "command_arg" may have been set. * @return なし */ void do_cmd_debug(void) { int x, y, i; char cmd; /* Get a "debug command" */ get_com("Debug Command: ", &cmd, FALSE); /* Analyze the command */ switch (cmd) { /* Nothing */ case ESCAPE: case ' ': case '\n': case '\r': break; #ifdef ALLOW_SPOILERS /* Hack -- Generate Spoilers */ case '"': do_cmd_spoilers(); break; #endif /* ALLOW_SPOILERS */ /* Hack -- Help */ case '?': do_cmd_help(); break; /* Cure all maladies */ case 'a': do_cmd_wiz_cure_all(); break; /* Know alignment */ case 'A': msg_format("Your alignment is %d.", p_ptr->align); break; /* Teleport to target */ case 'b': do_cmd_wiz_bamf(); break; case 'B': battle_monsters(); break; /* Create any object */ case 'c': wiz_create_item(); break; /* Create a named artifact */ case 'C': wiz_create_named_art(); break; /* Detect everything */ case 'd': detect_all(DETECT_RAD_ALL * 3); break; /* Dimension_door */ case 'D': wiz_dimension_door(); break; /* Edit character */ case 'e': do_cmd_wiz_change(); break; /* Blue Mage Only */ case 'E': if (p_ptr->pclass == CLASS_BLUE_MAGE) { do_cmd_wiz_blue_mage(); } break; /* View item info */ case 'f': identify_fully(FALSE); break; /* Create desired feature */ case 'F': do_cmd_wiz_create_feature(); break; /* Good Objects */ case 'g': if (command_arg <= 0) command_arg = 1; acquirement(p_ptr->y, p_ptr->x, command_arg, FALSE, FALSE, TRUE); break; /* Hitpoint rerating */ case 'h': do_cmd_rerate(TRUE); break; #ifdef MONSTER_HORDES case 'H': do_cmd_summon_horde(); break; #endif /* MONSTER_HORDES */ /* Identify */ case 'i': (void)ident_spell(FALSE); break; /* Go up or down in the dungeon */ case 'j': do_cmd_wiz_jump(); break; /* Self-Knowledge */ case 'k': self_knowledge(); break; /* Learn about objects */ case 'l': do_cmd_wiz_learn(); break; /* Magic Mapping */ case 'm': map_area(DETECT_RAD_ALL * 3); break; /* Mutation */ case 'M': (void)gain_random_mutation(command_arg); break; /* Reset Class */ case 'R': (void)do_cmd_wiz_reset_class(); break; /* Specific reward */ case 'r': (void)gain_level_reward(command_arg); break; /* Summon _friendly_ named monster */ case 'N': do_cmd_wiz_named_friendly(command_arg); break; /* Summon Named Monster */ case 'n': do_cmd_wiz_named(command_arg); break; /* Dump option bits usage */ case 'O': do_cmd_dump_options(); break; /* Object playing routines */ case 'o': do_cmd_wiz_play(); break; /* Phase Door */ case 'p': teleport_player(10, 0L); break; /* Complete a Quest -KMW- */ case 'q': if(p_ptr->inside_quest) { if (quest[p_ptr->inside_quest].status == QUEST_STATUS_TAKEN) { complete_quest(p_ptr->inside_quest); break; } } else { msg_print("No current quest"); msg_print(NULL); } break; /* Make every dungeon square "known" to test streamers -KMW- */ case 'u': for (y = 0; y < cur_hgt; y++) { for (x = 0; x < cur_wid; x++) { cave[y][x].info |= (CAVE_GLOW | CAVE_MARK); } } wiz_lite(FALSE); break; /* Summon Random Monster(s) */ case 's': if (command_arg <= 0) command_arg = 1; do_cmd_wiz_summon(command_arg); break; /* Special(Random Artifact) Objects */ case 'S': if (command_arg <= 0) command_arg = 1; acquirement(p_ptr->y, p_ptr->x, command_arg, TRUE, TRUE, TRUE); break; /* Teleport */ case 't': teleport_player(100, 0L); break; /* Very Good Objects */ case 'v': if (command_arg <= 0) command_arg = 1; acquirement(p_ptr->y, p_ptr->x, command_arg, TRUE, FALSE, TRUE); break; /* Wizard Light the Level */ case 'w': wiz_lite((bool)(p_ptr->pclass == CLASS_NINJA)); break; /* Increase Experience */ case 'x': gain_exp(command_arg ? command_arg : (p_ptr->exp + 1)); break; /* Zap Monsters (Genocide) */ case 'z': do_cmd_wiz_zap(); break; /* Zap Monsters (Omnicide) */ case 'Z': do_cmd_wiz_zap_all(); break; /* Hack -- whatever I desire */ case '_': do_cmd_wiz_hack_ben(); break; /* Not a Wizard Command */ default: msg_print("That is not a valid debug command."); break; } }
/* * Ask for and parse a "debug command" * * The "p_ptr->command_arg" may have been set. */ void do_cmd_debug(void) { int py = p_ptr->py; int px = p_ptr->px; char cmd; /* Get a "debug command" */ if (!get_com("Debug Command: ", &cmd)) return; /* Analyze the command */ switch (cmd) { /* Ignore */ case ESCAPE: case ' ': case '\n': case '\r': { break; } #ifdef ALLOW_SPOILERS /* Hack -- Generate Spoilers */ case '"': { do_cmd_spoilers(); break; } #endif /* Hack -- Help */ case '?': { do_cmd_wiz_help(); break; } /* Cure all maladies */ case 'a': { do_cmd_wiz_cure_all(); break; } /* Teleport to target */ case 'b': { do_cmd_wiz_bamf(); break; } /* Create any object */ case 'c': { wiz_create_item(); break; } /* Create an artifact */ case 'C': { if (p_ptr->command_arg > 0) { wiz_create_artifact(p_ptr->command_arg); } else { char name[80] = ""; int a_idx = -1; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Create which artifact? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if an a_idx was entered */ a_idx = get_idx_from_name(name); /* If not, find the artifact with that name */ if (a_idx < 1) a_idx = lookup_artifact_name(name); /* Did we find a valid artifact? */ if (a_idx != -1) wiz_create_artifact(a_idx); } /* Reload the screen */ screen_load(); } break; } /* Detect everything */ case 'd': { detect_all(TRUE); break; } /* Edit character */ case 'e': { do_cmd_wiz_change(); break; } case 'f': { stats_collect(); break; } /* Good Objects */ case 'g': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->depth, p_ptr->command_arg, FALSE); break; } /* Hitpoint rerating */ case 'h': { do_cmd_rerate(); break; } /* Identify */ case 'i': { (void)ident_spell(); break; } /* Go up or down in the dungeon */ case 'j': { do_cmd_wiz_jump(); break; } /* Learn about objects */ case 'l': { do_cmd_wiz_learn(); break; } /* Magic Mapping */ case 'm': { map_area(); break; } /* Summon Named Monster */ case 'n': { if (p_ptr->command_arg > 0) { do_cmd_wiz_named(p_ptr->command_arg, TRUE); } else { char name[80] = ""; s16b r_idx; /* Avoid the prompt getting in the way */ screen_save(); /* Prompt */ prt("Summon which monster? ", 0, 0); /* Get the name */ if (askfor_aux(name, sizeof(name), NULL)) { /* See if a r_idx was entered */ r_idx = get_idx_from_name(name); /* If not, find the monster with that name */ if (r_idx < 1) r_idx = lookup_monster(name); /* Did we find a valid monster? */ if (r_idx != -1) do_cmd_wiz_named(r_idx, TRUE); } p_ptr->redraw |= (PR_MAP | PR_MONLIST); /* Reload the screen */ screen_load(); } break; } /* Object playing routines */ case 'o': { do_cmd_wiz_play(); break; } /* Phase Door */ case 'p': { teleport_player(10); break; } /* Query the dungeon */ case 'q': { do_cmd_wiz_query(); break; } /* Summon Random Monster(s) */ case 's': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; do_cmd_wiz_summon(p_ptr->command_arg); break; } /* Teleport */ case 't': { teleport_player(100); break; } /* Create a trap */ case 'T': { cave_set_feat(p_ptr->py, p_ptr->px, FEAT_INVIS); break; } /* Un-hide all monsters */ case 'u': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 255; do_cmd_wiz_unhide(p_ptr->command_arg); break; } /* Very Good Objects */ case 'v': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = 1; acquirement(py, px, p_ptr->depth, p_ptr->command_arg, TRUE); break; } case 'V': { wiz_test_kind(p_ptr->command_arg); break; } /* Wizard Light the Level */ case 'w': { wiz_light(); break; } /* Increase Experience */ case 'x': { if (p_ptr->command_arg) { gain_exp(p_ptr->command_arg); } else { gain_exp(p_ptr->exp + 1); } break; } /* Zap Monsters (Banishment) */ case 'z': { if (p_ptr->command_arg <= 0) p_ptr->command_arg = MAX_SIGHT; do_cmd_wiz_zap(p_ptr->command_arg); break; } /* Hack */ case '_': { do_cmd_wiz_hack_ben(); break; } /* Oops */ default: { msg_print("That is not a valid debug command."); break; } } }
/* * Wield or wear a single item from the pack or floor */ void do_cmd_wield(void) { int i, item, slot; object_type forge; object_type *q_ptr; object_type *o_ptr; cptr act; char o_name[MAX_NLEN]; cptr q, s; bool newrace = FALSE; /* Restrict the choices */ item_tester_hook = item_tester_hook_wear; /* Get an item */ #ifdef JP q = "どれを装備しますか? "; s = "装備可能なアイテムがない。"; #else q = "Wear/Wield which item? "; s = "You have nothing you can wear or wield."; #endif if (!get_item(&item, q, s, (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]; } /* Check the slot */ slot = wield_slot(o_ptr); /* Where is the item now */ if (slot == INVEN_WIELD) { #ifdef JP act = "を打撃用に装備した"; #else act = "You are wielding"; #endif } else if (slot == INVEN_BOW) { #ifdef JP act = "を射撃用に装備した"; #else act = "You are shooting with"; #endif } else if (slot == INVEN_LITE) { #ifdef JP act = "を光源にした"; #else act = "Your light source is"; #endif } else { #ifdef JP act = "を装備した"; #else act = "You are wearing"; #endif } if ((o_ptr->tval == TV_RING) && inventory[INVEN_LEFT].k_idx && inventory[INVEN_RIGHT].k_idx) { /* Restrict the choices */ item_tester_tval = TV_RING; /* Choose a ring from the equipment only */ #ifdef JP q = "どちらの指輪と取り替えますか?"; s = "おっと。"; #else q = "Replace which ring? "; s = "Oops."; #endif if (!get_item(&slot, q, s, (USE_EQUIP))) return; } if (slot == INVEN_WIELD) { if (is_two_handed()) { /* Restrict the choices */ item_tester_hook = item_tester_hook_melee_weapon; /* Choose a ring from the equipment only */ #ifdef JP q = "どちらの武器と取り替えますか?"; s = "おっと。"; #else q = "Replace which weapon? "; s = "Oops."; #endif if (!get_item(&slot, q, s, (USE_EQUIP))) return; } else if (inventory[slot].k_idx) { /* Confirm doing two handed combat */ #ifdef JP if (get_check("二刀流を行いますか?")) #else if (get_check("Do you want to do two handed combat?")) #endif { slot = INVEN_ARM; } } } /* Prevent wielding into a cursed slot */ if (cursed_p(&inventory[slot])) { /* Describe it */ object_desc(o_name, &inventory[slot], OD_OMIT_PREFIX | OD_NAME_ONLY); /* Message */ #ifdef JP msg_format("%s%sは呪われているようだ。", describe_use(slot) , o_name ); #else msg_format("The %s you are %s appears to be cursed.", o_name, describe_use(slot)); #endif /* Cancel the command */ return; } if (cursed_p(o_ptr) && (object_known_p(o_ptr) || (o_ptr->ident & IDENT_SENSE))) { char dummy[512]; /* Describe it */ object_desc(o_name, o_ptr, OD_OMIT_PREFIX | OD_NAME_ONLY); #ifdef JP sprintf(dummy, "本当に%s{呪われている}を使いますか?", o_name); #else sprintf(dummy, "Really use the %s {cursed}? ", o_name); #endif if (!get_check(dummy)) return; } #if 0 if ((o_ptr->name1 == ART_STONEMASK) && object_known_p(o_ptr) && (p_ptr->prace != RACE_VAMPIRE)) { char dummy[MAX_NLEN+80]; /* Describe it */ object_desc(o_name, o_ptr, OD_OMIT_PREFIX | OD_NAME_ONLY); #ifdef JP sprintf(dummy, "%sを装備すると吸血鬼になります。よろしいですか?", o_name); #else msg_format("%s will transforms you into a vampire permanently when equiped.", o_name); sprintf(dummy, "Do you become a vampire?"); #endif if (!get_check(dummy)) return; } #endif /* Check if completed a quest */ for (i = 0; i < max_quests; i++) { if ((quest[i].type == QUEST_TYPE_FIND_ARTIFACT) && (quest[i].status == QUEST_STATUS_TAKEN) && (quest[i].k_idx == o_ptr->name1)) { quest[i].status = QUEST_STATUS_COMPLETED; quest[i].complev = (byte)p_ptr->lev; #ifdef JP msg_print("クエストを達成した!"); #else msg_print("You completed your quest!"); #endif sound(SOUND_LEVEL); /* (Sound substitute) No quest sound */ msg_print(NULL); } } /* Take a turn */ energy_use = 100; /* Get local object */ q_ptr = &forge; /* Obtain local object */ object_copy(q_ptr, o_ptr); /* Modify quantity */ q_ptr->number = 1; /* Decrease the item (from the pack) */ if (item >= 0) { inven_item_increase(item, -1); inven_item_optimize(item); } /* Decrease the item (from the floor) */ else { floor_item_increase(0 - item, -1); floor_item_optimize(0 - item); } /* Access the wield slot */ o_ptr = &inventory[slot]; /* Take off existing item */ if (o_ptr->k_idx) { /* Take off existing item */ (void)inven_takeoff(slot, 255); } /* Wear the new stuff */ object_copy(o_ptr, q_ptr); /* Player touches it */ o_ptr->marked |= OM_TOUCHED; /* Forget stack */ o_ptr->next_o_idx = 0; /* Forget location */ o_ptr->iy = o_ptr->ix = 0; /* Increase the weight */ p_ptr->total_weight += q_ptr->weight; /* Increment the equip counter by hand */ equip_cnt++; /* Describe the result */ object_desc(o_name, o_ptr, 0); /* Message */ #ifdef JP msg_format("%s(%c)%s。", o_name, index_to_label(slot), act ); #else msg_format("%s %s (%c).", act, o_name, index_to_label(slot)); #endif sound(SOUND_WIELD); /* Cursed! */ if (cursed_p(o_ptr)) { /* Warn the player */ #ifdef JP msg_print("うわ! すさまじく冷たい!"); #else msg_print("Oops! It feels deathly cold!"); #endif sound(SOUND_CURSED); /* Note the curse */ o_ptr->ident |= (IDENT_SENSE); } #if 0 /* if you weild stonemask, you morph into vampire */ if ((o_ptr->name1 == ART_STONEMASK) && (!is_undead())) { p_ptr->prace = RACE_VAMPIRE; newrace = TRUE; #ifdef JP msg_format("あなたは吸血鬼に変化した!"); #else msg_format("You polymorphed into a vampire!"); #endif } #endif if (newrace) { rp_ptr = &race_info[p_ptr->prace]; /* Experience factor */ calc_expfact(); /* Get new height and weight */ get_ahw(FALSE); check_experience(); /* Hitdice */ p_ptr->hitdie = rp_ptr->r_mhp + cp_ptr->c_mhp; do_cmd_rerate(TRUE); p_ptr->redraw |= (PR_BASIC); p_ptr->update |= (PU_BONUS); handle_stuff(); /* Load an autopick preference file */ autopick_load_pref(FALSE); lite_spot(py, px); } /* Recalculate bonuses */ p_ptr->update |= (PU_BONUS); /* Recalculate torch */ p_ptr->update |= (PU_TORCH); /* Recalculate mana */ p_ptr->update |= (PU_MANA); p_ptr->redraw |= (PR_EQUIPPY); /* Window stuff */ p_ptr->window |= (PW_INVEN | PW_EQUIP | PW_PLAYER | PW_STATS); }