/*! * @brief 任意のベースアイテム生成のメインルーチン / * Wizard routine for creating objects -RAK- * @return なし * @details * Heavily modified to allow magification and artifactification -Bernd- * * Note that wizards cannot create objects on top of other objects. * * Hack -- this routine always makes a "dungeon object", and applies * magic to it, and attempts to decline cursed items. */ static void wiz_create_item(void) { object_type forge; object_type *q_ptr; int k_idx; /* Save the screen */ screen_save(); /* Get object base type */ k_idx = wiz_create_itemtype(); /* Restore the screen */ screen_load(); /* Return if failed */ if (!k_idx) return; if (k_info[k_idx].gen_flags & TRG_INSTA_ART) { int i; /* Artifactify */ for (i = 1; i < max_a_idx; i++) { /* Ignore incorrect tval */ if (a_info[i].tval != k_info[k_idx].tval) continue; /* Ignore incorrect sval */ if (a_info[i].sval != k_info[k_idx].sval) continue; /* Create this artifact */ (void)create_named_art(i, p_ptr->y, p_ptr->x); /* All done */ msg_print("Allocated(INSTA_ART)."); return; } } /* Get local object */ q_ptr = &forge; /* Create the item */ object_prep(q_ptr, k_idx); /* Apply magic */ apply_magic(q_ptr, dun_level, AM_NO_FIXED_ART); /* Drop the object from heaven */ (void)drop_near(q_ptr, -1, p_ptr->y, p_ptr->x); /* All done */ msg_print("Allocated."); }
/* * Create the artifact of the specified number -- DAN * */ static void wiz_create_named_art(int a_idx) { /* Create the artifact */ (void)create_named_art(a_idx, py, px); /* All done */ msg_print("Allocated."); }
/*! * @brief 指定されたIDの固定アーティファクトを生成する / Create the artifact of the specified number * @return なし */ static void wiz_create_named_art(void) { char tmp_val[10] = ""; int a_idx; /* Query */ if (!get_string("Artifact ID:", tmp_val, 3)) return; /* Extract */ a_idx = atoi(tmp_val); if(a_idx < 0) a_idx = 0; if(a_idx >= max_a_idx) a_idx = 0; /* Create the artifact */ (void)create_named_art(a_idx, p_ptr->y, p_ptr->x); /* All done */ msg_print("Allocated."); }